一、需求
在Linux系统中,在执行一些运行时间比较长的使命时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。本文介绍两种保障程序在您退出登录后连续运行的方法。
二、使用screen执行下令
GNU Screen可以当做窗口管理器的下令行界面版本。只要Screen本身没有被停止,在其内部运行的会话都可以规复,特别适合执行一些运行时间长的使命。
【1】安装screen工具:Linux系统默认没有screen工具,需要执行yum install screen先举行安装。
- [root@iZbp1ge4ctw809v4lhhrnaZ ~]# yum install screen
- Last metadata expiration check: 0:09:31 ago on Sun 07 Jan 2024 03:32:02 PM CST.
- Dependencies resolved.
- =======================================================================================================================================================================================================================================================================================
- Package Architecture Version Repository Size
- =======================================================================================================================================================================================================================================================================================
- Installing:
- screen x86_64 4.6.2-12.el8 epel 581 k
- Transaction Summary
- =======================================================================================================================================================================================================================================================================================
- Install 1 Package
- Total download size: 581 k
- Installed size: 955 k
- Is this ok [y/N]: y
- Downloading Packages:
- screen-4.6.2-12.el8.x86_64.rpm 9.0 MB/s | 581 kB 00:00
- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Total 8.8 MB/s | 581 kB 00:00
- Extra Packages for Enterprise Linux 8 - x86_64 1.6 MB/s | 1.6 kB 00:00
- Importing GPG key 0x2F86D6A1:
- Userid : "Fedora EPEL (8) <epel@fedoraproject.org>"
- Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
- From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
- Is this ok [y/N]: y
- Key imported successfully
- Running transaction check
- Transaction check succeeded.
- Running transaction test
- Transaction test succeeded.
- Running transaction
- Preparing : 1/1
- Running scriptlet: screen-4.6.2-12.el8.x86_64 1/1
- Installing : screen-4.6.2-12.el8.x86_64 1/1
- Running scriptlet: screen-4.6.2-12.el8.x86_64 1/1
- Verifying : screen-4.6.2-12.el8.x86_64 1/1
- Installed:
- screen-4.6.2-12.el8.x86_64
- Complete!
复制代码 【2】执行screen -S [$Name]下令,创建screen窗口。 如果已存在screen连接,执行Screen _R xxxname规复
【3】当需要运行脚本、执行程序时,在下令前添加screen即可。
【5】同时按Ctrl+a+d键,就可以退出SSH登录,但不会影响screen程序的运行。
【6】需要继续工作时,登录实例,然后执行screen -r -d下令,规复会话即可。
使用nohup执行下令
nohup可以使运行的下令忽略SIGHUP信号。因此,即使退出登录,程序仍旧会继续执行。通常环境下,在nohup下令尾部加上&字符,才能将下令放至配景执行。详细示比方下所示:在下令头尾分别加上nohup和&,可以看到nohup输出了一行信息,再Enter键就跳回了Shell下令行,此时下令已经在配景执行了,nohup将下令的输出重定向至当前目次的nohup.out文件中。同时,nohup会将对应程序的PID输出,PID可用于需要中断进程时竣事进程。
- [root@iZbp1ge4ctw809v4lhhrnaZ project]# nohub npm run docs:dev &
- [1] 35432
复制代码 执行tail -f nohup.out下令,可以连续的检察nohup.out的输出,达到监控程序的效果。 执行kill -TRM [$PID]下令,竣事进程,[$PID]为之前nohup下令输出的值。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |