0

我在某些服务器上使用 telnet/ssh 访问来运行特定的模拟器程序,并且该程序依靠 SIGTERM 退出自身(如果不交互式输入“退出”字符串)。

当我直接终止 telnet/ssh 会话时,程序通常会在大多数服务器上自行退出。但是在某些服务器上,我的模拟器不会收到 SIGTERM 信号,并继续作为 ROOT 进程的子进程运行。那么那些悬空的进程会消耗大量的 CPU 资源。

有人可以帮我看看在哪里看吗?或者如何解决这种情况?

谢谢,凯文

4

1 回答 1

0

编写一个包装程序

  1. 执行你的模拟器程序
  2. 当模拟器退出时,自行退出
  3. 当它成为根进程的子进程时,将 SIGTERM 发送到模拟器(如果没有效果,则在几秒钟后发送 SIGKILL )

这将是一个可怕的黑客攻击,但根据您迄今为止提供的信息,这是我能建议的最好方法。

于 2012-08-10T08:57:15.547 回答