我想在后台运行一个进程而不在 shell 退出时终止它,根据 Nohup 概念,以下命令应该可以工作,直到我手动终止它:
nohup uwsgi --http :8008 --module crawled_data_center.wsgi > /dev/null &
我以 root 用户登录到 shell,但退出 shell 后,进程终止。这看起来很奇怪,因为我nohup
在多个项目中使用过几次并且工作正常,但在这种情况下我已经很糟糕了,问题是什么,我怎样才能在后台运行它而不在 shell 退出时杀死它?
更新:
我处理它:
$ nohup uwsgi --http :8008 --module crawled_data_center.wsgi > /dev/null &
$ disown -l
$ disown -h JOBID
但我的问题是,怎么可能SIGHUP
杀死nohup
和&
?
以下是 的内容/etc/systemd/logind.conf
:
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
Controllers=blkio cpu cpuacct cpuset devices freezer hugetlb memory perf_event net_cls net_prio
ResetControllers=
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#IdleAction=ignore
#IdleActionSec=30min