程序后台运行方法:使用守护进程 或 screen软件
阅读原文时间:2023年08月09日阅读:3

我们常需要SSH远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,在此期间不能关掉窗口或者断开连接,否则这个任务会被杀掉,一切就半途而废了。

可以使用以下两个方法:


方法一:nohup &守护进程

  • 始终在后台运行
  • 独立于控制终端(终端关闭不会影响到守护进程的关闭)

[root@zwzf-cwy-lzy-7-new opt]# nohup ./startup.sh &
[1] 4825
[root@zwzf-cwy-lzy-7-new opt]# nohup: ignoring input and appending output to ‘nohup.out’

[root@zwzf-cwy-lzy-7-new opt]# ps -ef|grep startup.sh
root 4825 4650 0 20:05 pts/0 00:00:00 /bin/bash ./startup.sh
root 4843 4650 0 20:05 pts/0 00:00:00 grep --color=auto startup.sh

方法二:screen软件

  只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。

1. 在线安装

sudo apt-get screen

2. 离线安装

[root@zwzf-cwy-lzy-12 upload]# rpm -ivh screen-4.1.0-0.27.20120314git3c2946.el7_9.x86_64.rpm

下载链接:https://pan.baidu.com/s/1bYoblP8jhsC5pYjkU5QEHw  _提取码:tmn3_

3. 使用方法

screen -S 窗口名称  指定screen窗口的名称
screen -ls 查看有哪些在后台的窗口
screen -r 窗口名称  恢复离线的screen窗口
exit 关闭窗口。