我们常需要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 关闭窗口。
文章介绍了两种在SSH远程登录Linux服务器时,确保长时间运行任务不因窗口关闭或断开连接而中断的方法。方法一是使用nohup命令启动守护进程,任务输出将被重定向到nohup.out文件。方法二是利用screen工具,即使网络中断,也能恢复会话继续执行任务。
1248

被折叠的 条评论
为什么被折叠?



