ubuntu nohup 不起作用
ubuntu nohup doesn't work
我正在使用 AWS(ubuntu 实例)。我想在后台使用 nohup 到 运行。
我在我的 putty 中试过这段代码。
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 结束。
怎么了?
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, systemd,或许多其他系统之一 - 最佳实践是使用任何一个一个你的操作系统供应商在没有令人信服的相反理由的情况下开箱即用)到运行你的进程在后台并在它死亡时重新启动它。
我正在使用 AWS(ubuntu 实例)。我想在后台使用 nohup 到 运行。
我在我的 putty 中试过这段代码。
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 结束。 怎么了?
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, systemd,或许多其他系统之一 - 最佳实践是使用任何一个一个你的操作系统供应商在没有令人信服的相反理由的情况下开箱即用)到运行你的进程在后台并在它死亡时重新启动它。