我的项目托管在Webfaction上,主管用于了解进程。我使用 shell utils 来获取主管的 PID,当我手动执行此操作时它工作得很好,但是在使用 Fabric 远程执行相同的命令时,我得到了随机的 PID
获取主管PID的代码
spid = run('ps auxw | grep supervisord | grep %s | tr -s ' ' | cut -d -f 2' % USER)
if spid: # if supervisor is running and PID is found
run('kill %s' % spid) # kill supervidor daemon
我很困惑为什么在远程调用命令时会出现随机 PID,我这样做的方式有什么问题?
谢谢
苏丹
你可以通过使用pkill
或pgrep
来查找pid来简单地解决这个问题。但是,如果这就是您正在执行的全部工作,我会说使用-j|--pidfile=
选项,这样您就不必通过过程输出查找它。