我 ssh 进入服务器而不是启动作业(例如 rsync),然后我只想能够从服务器注销并让作业运行。但是,如果我只是这样做,rsync ... &
我认为它仍然以某种方式连接到 tty,并且当 tty 在注销时消失时,该工作就会终止。是否有任何(简单)方法可以将进程与 tty 断开连接,以便能够在进程不终止的情况下注销?
我 ssh 进入服务器而不是启动作业(例如 rsync),然后我只想能够从服务器注销并让作业运行。但是,如果我只是这样做,rsync ... &
我认为它仍然以某种方式连接到 tty,并且当 tty 在注销时消失时,该工作就会终止。是否有任何(简单)方法可以将进程与 tty 断开连接,以便能够在进程不终止的情况下注销?
你可以在屏幕上启动它
似乎正是我想要的。
使用
setsid
句柄 1 和 2 并将其重定向到/dev/null
.例如
没有
setsid
和结尾的&符号,该命令ps ax
显示:有
setsid
和没有尾随 & 号命令ps ax
显示:...表示没有附加 TTY。
在 Linux(至少是 Ubuntu)中,您可以使用
start-stop-daemon
如果您只想启动一个进程并让它运行,您可以使用
Debian 和 Ubuntu 有一个名为daemon的包,它似乎是libslack项目的一部分。