当前位置:   article > 正文

SSH关闭Liunx系统正常运行

SSH关闭Liunx系统正常运行

一、需求

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!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

【2】执行screen -S [$Name]命令,创建screen窗口。 如果已存在screen连接,执行Screen _R xxxname恢复

screen -S myblog
  • 1

【3】当需要运行脚本、执行程序时,在命令前添加screen即可。

screen npm run docs:dev
  • 1

【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
  • 1
  • 2

执行tail -f nohup.out命令,可以持续的查看nohup.out的输出,达到监控程序的效果。 执行kill -TRM [$PID]命令,结束进程,[$PID]为之前nohup命令输出的值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/127554
推荐阅读
相关标签
  

闽ICP备14008679号