linux -运行进程后台

laawzig2  于 2023-04-29  发布在  Linux
关注(0)|答案(4)|浏览(151)

我想在远程linux服务器上运行一个进程,并在关闭putty终端后保持该进程的活动状态
正确的命令是什么?

nukf8bse

nukf8bse1#

你有两个选择:
1.使用GNU screen,这将允许您运行命令并将其从终端分离,然后将其重新连接到不同的会话。我将它用于长时间运行的进程,我希望能够随时监视这些进程的输出。屏幕是一个真正强大的工具,我强烈建议花一些时间来学习它。
1.以nohup some-command &的身份运行命令,这将在后台运行命令,将其从控制台分离,并将其输出重定向到nohup.out。它将吞下发送给进程的SIGHUP。(当您关闭终端或注销时,SIGHUP被发送到登录shell启动的所有进程,内核将采取的默认操作是关闭该进程。这就是为什么附加&以将进程置于后台不足以使其在注销后存活下来。)

rjzwgtxy

rjzwgtxy2#

不要使用nohup垃圾,我讨厌看到服务器上;屏幕是一堆无用的比特和腐烂--使用tmux。
如果你想在后台运行一个进程,就像其他守护进程一样,从一开始就使用double fork:

# ((exec sleep 30)&)
# grep PPid /proc/`pgrep sleep`/status
PPid:   1
# jobs
# disown
bash: disown: current: no such job

好好享受。

js5cn81o

js5cn81o3#

hapless实用程序是一种现代且易于使用的方法,它允许管理多个进程并具有漂亮的终端UI。
使用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了解更多信息。

yebdmbv4

yebdmbv44#

用括号括起来的命令

(command &)

会在原壳死亡后幸存下来

相关问题