编辑这是固定的。请参阅下面我的回答。
我有一个在 Angstrom Linux 上运行传输守护进程的 headless 服务器。我能够通过 SSH 连接到机器并通过 this init script 调用传输守护进程;但是,该过程在我注销后立即终止。
脚本中发出的命令是:
start-stop-daemon --chuid transmission --start --pidfile /var/run/transmission-daemon.pid --make-pidfile --exec /usr/local/bin/transmission-daemon --background -- -f
通过 # /etc/init.d/transmission-daemon start
启动守护程序后,我可以使用 ps
进行验证该进程归用户所有 transmission
(这不是我通过 SSH 登录的用户)。
我已经尝试了上述命令的所有变体,包括:
- 有和没有
--background
启动停止守护进程的选项 - 附加
> /dev/null 2>&1 &
到 start-stop-daemon 命令(source——尽管关于这是否是正确的方法,该线程中似乎有不同的结果) - 附加
> /dev/null 2>&1 & </dev/null &
( source ) - 正在添加
&
到命令结束 - 使用
nohup
这些似乎都不起作用——结果总是一样的:进程在我关闭 SSH session 后立即退出。
在断开 SSH session 后,我可以/应该做什么来保持守护程序运行?
最佳答案
您尝试过使用 GNU Screen 吗?
它允许您保持 session 打开,即使您断开连接(但如果您退出则不会)。
这是一个简单的例子:
apt-get install screen
或
yum install screen
关于linux - 如何防止通过 SSH 启动的守护进程在注销时终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24643451/