【问题标题】:Fabric problems with reloading supervisor on remote host在远程主机上重新加载主管的结构问题
【发布时间】:2012-09-23 04:24:53
【问题描述】:

我的项目托管在 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,我这样做的方式有什么问题?

谢谢,

苏丹

【问题讨论】:

  • “随机” pid 是什么样的?会不会是被杀死的进程的 PID?
  • 如果主管没有运行,上述命令将返回 None,所以我的情况是,当使用 Fabric 远程执行命令时,我的 PID 错误,但如果我手动检查相同的命令,我得到了正确的 PID

标签: python django fabric supervisord webfaction


【解决方案1】:

您可以通过使用pkillpgrep 查找pid 来更简单地解决这个问题。但如果这就是你所做的一切,我会说使用-j|--pidfile= 选项,这样你就不必通过进程输出查找它。

【讨论】:

  • 谢谢@Morgan。顺便说一句,我使用像 ps -u imanhodjaev -o rss,etime,pid,command 这样的命令来计算 PIDs
猜你喜欢
  • 2017-10-28
  • 1970-01-01
  • 2020-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 2011-12-16
  • 2017-11-10
相关资源
最近更新 更多