
很多朋友可能在实际的linux服务器管理工作中,经常会为一些长时间运行的任务而头疼,当有事离开我们关掉了连接终端断开SSH后,刚才运行着的
程序也自动被中断。下面就介绍下如何让我们的程序在断开SSH后继续在后行运行的方法。 一、使用nohup让程序在后台继续运行 常用
命令:nohup /home/nginxsh & 如果运行成功刚默认会将标准输出重定向到当前目录的nohupout文件中,查看此文件,可以了解运行的进度; 二、使用screen让程序在后台执行 screen是一个可以在多个进程之间多路利用一个物理终端的
窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像 *** 作一个真实的telnet/SSH连接窗口那样。 1、安装screen yum install screen 2、创建screen会话 3、暂时离开,保留screen会话中的任务或程序 当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d) 4、恢复screen会话 当回来时可以再执行执行:screen -r wordname 即可恢复到离开前创建的lnmp会话的工作界面。 如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表; [root@LF ~]# screen -ls There are screens on: 12738wordname (Detached) 12839hte1 (Detached) 2 Sockets in /var/run/screen/S-root 12738wordname即为即才screen创建的会话,恢复回话:screen -r 12738 5、关闭screen会话 执行:exit 6、远程演示 首先在服务器上执行screen -S test创建一个screen的会话,观众可以链接到 远程服务器执行screen -x test 这样观众的屏幕上就会出现和演示者同步的内容。 7、常用的快捷键 Ctrl + a c 在当前screen会话中创建窗口 Ctrl + a w 窗口列表 Ctrl + a n 下一个窗口 Ctrl + a p 上一个窗口 Ctrl + a 0-9 在第0个窗口和第9个窗口之间切换 摘取于:/manage/screenhtml后台运行某个命令
后台运行某个命令或SHELL,如
find / -type f -name "crontab" 2> temp | xagrs ll &
若-type d 则会列出crontab文件夹内的文件
若要在服务器上一直运行某个命令或SHELL,则形式为 nohup ash &
今天在一个技术群中看到有人在讨论这个问题,刚好手头上正在做物联网项目,也遇到这么个问题,只是之前一直在测试阶段,没怎么把这个问题放在心上,断了重新连接就可以了,只是麻烦一点罢了。不过过阵子要出差,后面还要演示,不可能再继续这样一直用SSH连着重新启动各种远程程序,该准备的还是先准备好,以防到时出错,所以刚刚特意就这个问题搜了一下解决方法。
有两种方法:一是用nohup命令,另一种是用screen工具。因为nohup比较方便,所以采用这种方法,关于screen的具体用法,可以参考上面的博文。
当SSH网络断开后,会向该连接相关所有会话进程发一个SIGHUP信号,收到这个信号的进程默认是终止运行,nohup命令的作用就是让进程不接收到该信号,这样就可以在SSH断开后保证程序继续运行。
评论列表(0条)