我正在使用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结束。 怎么了?
答案 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
...或更好的是,使用真正的流程监督系统(Upstart,DJB daemontools,runit,launchd,{ {3}},或许多其他人中的一个 - 最佳做法是使用您的操作系统供应商开箱即用的任何一个,没有令人信服的相反原因)在后台运行您的进程并在其后重新启动它模具