我使用setsid命令启动进程(websocket服务器):
setsid python mod_pywebsocket/standalone.py -p 12345
但我怎么能阻止它呢?我相信它现在正在运行,只是不知道如何获得pid并杀死它。
答案 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,所以你必须在那个循环中做你需要的任何事情,只有一行输出所以它只会被执行一次。