ubuntu nohup不起作用

时间:2017-07-17 03:51:19

标签: python git ubuntu nohup

我正在使用AWS(ubuntu实例)。我想用nohup在后台运行。

我在我的腻子中尝试了这段代码。

sudo nohup python3 manage.py runserver --settings=health.settings 0.0.0.0:80

然后,

nohup: ignoring input and appending output to 'nohup.out'

此代码出现,网站运行良好。 但我按下Ctrl + C'然后nohup结束。 怎么了?

1 个答案:

答案 0 :(得分:3)

nohup阻止HUP信号 - 当控制终端退出时发送的挂断 - 被传送到进程。它不会忽略SIGINT,这是ctrl + c发送的。

在后台启动您的流程 (使用&作为以下命令分隔符):

sudo nohup python3 manage.py runserver --settings=health.settings 0.0.0.0:80 &

或者自己重定向stdin / stdout / stderr并使用bash内置disown,这样做可以防止HUP像nohup一样传播:

sudo python3 manage.py runserver ... </dev/null >runserver.log 2>&1 &
disown -h

...或更好的是,使用真正的流程监督系统(UpstartDJB daemontoolsrunitlaunchd,{ {3}},或许多其他人中的一个 - 最佳做法是使用您的操作系统供应商开箱即用的任何一个,没有令人信服的相反原因)在后台运行您的进程并在其后重新启动它模具