如何终止由 setsid 初始化的守护进程



我使用 setsid 命令启动一个进程(websocket 服务器):

setsid python mod_pywebsocket/standalone.py -p 12345

但是我该如何阻止它呢?我敢肯定它现在正在运行,只是不知道如何获取 pid 并杀死它。

你可以试试这个技巧:

setsid sh -c 'python mod_pywebsocket/standalone.py -p 12345 > /dev/null & echo $!' |
  while read PID ; do
    echo $PID
    your stuff here
  done

这将启动另一个 shell,它将在后台启动您的进程,并使用 $! 运算符打印其作业 ID。

你不能在这里写PID=$(...),因为里面的命令在关闭它的输出流之前不会返回,所以这里有一个虚拟的"同时读取X"循环,它将读取第一行,不会等到命令关闭stdout,所以你必须在该循环内做任何你需要的事情,只有一行输出,所以它只会执行一次。

相关内容

  • 没有找到相关文章

最新更新