如何使用Fabric启动流程?
我正在尝试编写一个重置MySQL密码的任务,这需要我使用以下命令启动mysqld_safe
守护程序:
sudo bash -c "mkdir -p /var/run/mysqld; chown mysql /var/run/mysqld; mysqld_safe --skip-grant-tables &"
当我在服务器上手动运行时,ps aux|grep -i mysql
显示它运行正常,但当我使用Fabric sudo()
运行时,它似乎立即终止。我做错了什么?
我也尝试使用nohup
,如:
sudo bash -c "mkdir -p /var/run/mysqld; chown mysql /var/run/mysqld; nohup mysqld_safe --skip-grant-tables &"
但这没有效果。
答案 0 :(得分:0)
http://www.fabfile.org/faq.html#why-can-t-i-run-programs-in-the-background-with-it-makes-fabric-hang对这就是为什么有一个非常明确的解释。还提出了解决方案。
在您的情况下,您应该安装dtach并运行:
sudo(dtach -n `mktemp -u /tmp/{0}.XXXX` {1}'.format(some_name, cmd_to_execute))
你可以在开头btw中删除“sudo bash”。