我在 fabric 中有以下任务,旨在在紧急情况下暴力杀死所有 celery worker
def brute_kill_cel_workers():
with settings(sudo_user="operatore"):
sudo("sudo ps aux|grep 'celery worker'|awk '{print $2}'|xargs sudo kill -9")
它失败了
Fatal error: sudo() received nonzero return code 137 while executing!
这是为什么? commnd 本身在 ssh shell 中作为服务器上的用户“operatore”工作正常。或者至少我怎样才能得到织物来给我一些更多的信息来处理......
我也试过 sudo("ps aux|grep 'celery worker'|awk '{print $2}'|xargs kill -9")
和 run("sudo ps aux|grep 'celery worker'|awk '{print $2}'|xargs sudo kill -9")
.
最佳答案
当您使用 SIGKILL (kill -9) 杀死 Celery 时,您会得到返回代码:128 + 9(请参阅 this list of exit codes)。
如果您在使用 ssh 运行该命令时检查返回代码,您会看到代码是相同的,但只是未被处理:当您执行 echo $?
时(显示退出代码最后的表扬)用 ssh 执行命令行后,你也会得到 137。
关于python - 结构非零返回代码 137,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38081313/