我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。


nohup命令

功能:不挂断地运行命令,忽略HUP信号。
语法:nohup command &

nohup ping baidu.com > /dev/null &

setsid命令

功能:run a program in a new session在新的会话中运行程序

setsid ping baidu.com > /dev/null 

将"&"也放入“()”内执行命令

将一个或多个命名包含在“()”中就能让这些命令在子 shell 中运行

(ping baidu.com > /dev/null &)

disown命令

screen命令

如何实现SSH断开后 进程仍然在后台运行
Linux 技巧:让进程在后台可靠运行的几种方法

发表评论