SSH卡住或者断掉后执行失效?通过Screen,&,nohup命令实现后台继续运行
有时候因为网速慢,或者VPS配置低,或者执行时间过长,导致意外关闭SSH后执行中的命令也会挂掉,比如安装WEB环境,这一挂有时候又要重新编译很久。
那有没办法在SSH连接断开后命令还能继续运行的?
答案是肯定的,以CentOS为例,简单说一下挂命令的方法:
1:窗口 screen 方式。新开启一个screen窗口,在其中执行命令后,一般命令不会再挂掉。
安装窗口:
yum install screen -y
新建一个name窗口:
screen -S name
在其中执行命令:
yum install ***
意外关闭了SSH的话,先screen -ls 找到窗口的pid, 然后执行 screen -r PID 恢复。
2:通过执行nohup(nohup:no hang up,不挂起的意思。)命令后加 &,使其在终端后台运行。
在执行命令最前面使用nohup,当关闭控制台时,进程依旧会在后台继续运行。
如:
#nohup ./yum_install.sh &
如上nohup执行方式,当判断该脚本是否执行完毕,可执行命令ps -aux | grep yum_install.sh查看;
然后命令后会一直刷新执行结果,可以通过一个命令默默把结果保存:
#nohup ./yum_install.sh >> out.txt 2>&1 &
后续如果异常可以检查保存的日志文件。
发表评论