vagrant ssh -c并在连接关闭后保持后台进程运行

时间:2014-08-15 18:08:27

标签: linux vagrant

我正在编写一个脚本来启动和处理流浪汉机器内的进程。似乎每次脚本结束并且ssh会话结束时,后台进程也会结束。

这是我正在运行的命令:

vagrant ssh -c "cd /vagrant/src; nohup python hello.py > hello.out > 2>&1 &"

hello.py实际上只是一个烧瓶开发服务器。如果我以交互方式登录ssh并手动运行nohup命令,则在关闭会话后,服务器将继续运行。但是,如果我通过vagrant ssh -c运行它,它几乎就像命令从未运行一样(即没有创建hello.out文件)。手动运行和通过vagrant ssh -c之间有什么区别,以及如何修复它以使其有效?

2 个答案:

答案 0 :(得分:11)

我在尝试将Django应用程序作为守护程序运行时遇到了同样的问题。我不知道为什么,但为我增加一个“睡1”的作品。

vagrant ssh -c "nohup python manage.py runserver & sleep 1"

答案 1 :(得分:1)

在运行wireshark时,在ssh命令中运行nohup对我不起作用。这样做了:

nohup vagrant ssh -c "wireshark" &