2022
我们一起努力

Linux系统中SSH客户端断开后保持进程继续运行的几

Linux系统中,通常我们在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH 连接或关闭客户端软件,否则可能会导致执行中断。本文介绍几种保障程序在用户退出登录后持续运行的方法。

使用管理终端执行

通过 管理终端(IPMI等) 会登录服务器的本地会话,在该终端执行的程序不会受到 SSH 登录用户退出的影响。具体操作方式如下:

通过 管理终端(IPMI等) 登录服务器。
执行所需程序或脚本。
下次需要查看任务执行状态时,再次连接管理终端查看即可。
使用 nohup 执行

nohup 的作用顾名思义,它使得后面的命令不会响应挂断(SIGHUP)信号。也就是说,通过远程登录执行 nohup 后,即使退出登录后,程序还是会正常执行。通常情况下,nohup 命令最后会跟上 字符,表示将这个命令放至后台执行,这样才能真正做到将这个命令放至后台持续的执行。

操作示例:

1、正常的执行命令为 bash hello.sh,执行结果为每秒输出一行的小程序:

2、在命令头尾分别加上 nohup 和 ,变为 nohup bash hello.sh ,可以看到 nohup 输出了一行信息,再按一下回车键就跳回了 shell 命令行,此时命令已经在后台执行了,nohup 将命令的输出重定向至当前目录的 nohup.out 文件中。同时注意到 nohup 会将对应程序的 PID 输出,PID 可用于需要中断进程时 kill 进程。

3、通过 tail -f nohup.out 可以持续的查看 nohup.out 的输出,达到监视程序的效果。

4、在命令中也可以使用重定向将程序的输出改为自己想要的文件名,如 nohup bash hello.sh hello.log ,则程序的输出就会写到 hello.log 文件中。

5、若程序不会自动退出,那么此时需要使用 kill 命令来结束进程。比如,可以使用命令 kill -TRM 来操作,其中 PID 即为之前 nohup 输出的值,在此例中该值为 1231。

使用限制:

nohup 通常用于执行无干预的自动化程序或脚本,无法完成带有交互的操作。

使用 screen 执行(推荐)

安装 sceen 工具

Linux 系统默认未自带 screen 工具,需要先进行安装:

CentOS 系列系统: yum install screen
Ubuntu 系列系统: sudo apt-get install screen

使用简介

1、创建 screen 窗口

screen -S name

name可以设置为ssh、ftp,用于标注该 screen 窗口用途

示例:

screen -S ftp

2、列出 screen 进程,并进入所需 screen

screen -ls

##列出 screen 进程列表,如下图

然后进行所需操作,比如运行脚本、执行程序等等。

如下图示例:创建ftp连接后台下载传输文件

3、退出保存

前述 ftp 操作示例开始传输后,在窗口中键入Ctrl a 键,再按下 d 键,就可以退出 SSH 登录,但不会影响 screen 程序的执行。

4、保存会话以便继续执行

可以利用 screen 这种功能来管理的远程会话。操作步骤概述:

正常 SSH 登录服务器

创建 screen 窗口

执行所需任务

需要临时中断退出时,按 Ctrl d 保存退出

需要继续工作时,再次 SSH 登录服务器,然后直接执行 screen -r -d 恢复会话即可。

来源:zyhot.com/article/8861.html

本站声明:内容来源于网络,内容不代表本站立场,仅供阅读参考,文章版权归原作者“本公司cmy.cn”所有。如有侵权,请联系我们删除。

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们56dr_com,同时欢迎投稿传递力量。

本文从“特网科技(56dr.com)”转载,原作者保留一切权利,若侵权请联系删除。

赞(0)
文章名称:《Linux系统中SSH客户端断开后保持进程继续运行的几》
文章链接:https://www.fzvps.com/148813.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!