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

时间:2014-11-30 00:11:58

标签: linux operating-system daemon setsid

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

setsid python mod_pywebsocket/standalone.py -p 12345

但我怎么能阻止它呢?我相信它现在正在运行,只是不知道如何获得pid并杀死它。

1 个答案:

答案 0 :(得分:0)

你可以试试这个黑客:

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 = $(...),因为内部命令在关闭它的输出流之前不会返回,所以这里是一个虚拟的'while read X'循环,它将读取第一行并且不会等待直到命令关闭stdout,所以你必须在那个循环中做你需要的任何事情,只有一行输出所以它只会被执行一次。