我想在远程linux服务器上运行一个进程,并在关闭putty终端后保持该进程的活动状态正确的命令是什么?
nukf8bse1#
你有两个选择:1.使用GNU screen,这将允许您运行命令并将其从终端分离,然后将其重新连接到不同的会话。我将它用于长时间运行的进程,我希望能够随时监视这些进程的输出。屏幕是一个真正强大的工具,我强烈建议花一些时间来学习它。1.以nohup some-command &的身份运行命令,这将在后台运行命令,将其从控制台分离,并将其输出重定向到nohup.out。它将吞下发送给进程的SIGHUP。(当您关闭终端或注销时,SIGHUP被发送到登录shell启动的所有进程,内核将采取的默认操作是关闭该进程。这就是为什么附加&以将进程置于后台不足以使其在注销后存活下来。)
nohup some-command &
nohup.out
&
rjzwgtxy2#
不要使用nohup垃圾,我讨厌看到服务器上;屏幕是一堆无用的比特和腐烂--使用tmux。如果你想在后台运行一个进程,就像其他守护进程一样,从一开始就使用double fork:
# ((exec sleep 30)&) # grep PPid /proc/`pgrep sleep`/status PPid: 1 # jobs # disown bash: disown: current: no such job
好好享受。
js5cn81o3#
hapless实用程序是一种现代且易于使用的方法,它允许管理多个进程并具有漂亮的终端UI。使用pip install hapless(或python3 -m pip install hapless)安装并运行
pip install hapless
python3 -m pip install hapless
$ hap run my-command # e.g. hap run python my_long_running_script.py $ hap status # check all the launched processes
请参阅docs了解更多信息。
yebdmbv44#
用括号括起来的命令
(command &)
会在原壳死亡后幸存下来
4条答案
按热度按时间nukf8bse1#
你有两个选择:
1.使用GNU screen,这将允许您运行命令并将其从终端分离,然后将其重新连接到不同的会话。我将它用于长时间运行的进程,我希望能够随时监视这些进程的输出。屏幕是一个真正强大的工具,我强烈建议花一些时间来学习它。
1.以
nohup some-command &
的身份运行命令,这将在后台运行命令,将其从控制台分离,并将其输出重定向到nohup.out
。它将吞下发送给进程的SIGHUP。(当您关闭终端或注销时,SIGHUP被发送到登录shell启动的所有进程,内核将采取的默认操作是关闭该进程。这就是为什么附加&
以将进程置于后台不足以使其在注销后存活下来。)rjzwgtxy2#
不要使用nohup垃圾,我讨厌看到服务器上;屏幕是一堆无用的比特和腐烂--使用tmux。
如果你想在后台运行一个进程,就像其他守护进程一样,从一开始就使用double fork:
好好享受。
js5cn81o3#
hapless实用程序是一种现代且易于使用的方法,它允许管理多个进程并具有漂亮的终端UI。
使用
pip install hapless
(或python3 -m pip install hapless
)安装并运行请参阅docs了解更多信息。
yebdmbv44#
用括号括起来的命令
会在原壳死亡后幸存下来