在云服务器 ECS Linux 系统中,一般咱们在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开 SSH 链接或关闭客户端软件,不然可能会致使执行中断。本文介绍几种保障程序在用户退出登陆后持续运行的方法。php
使用管理终端执行
经过 管理终端 会登陆服务器的本地会话(console)口,在该终端执行的程序不会受到 SSH 登陆用户退出的影响。具体操做方式以下:html
1. 经过 管理终端 登陆服务器。shell
2. 执行所需程序或脚本。小程序
3. 下次须要查看任务执行状态时,再次链接管理终端查看便可。bash
使用 nohup 执行
nohup 的做用顾名思义,它使得后面的命令不会响应挂断(SIGHUP)信号。也就是说,经过远程登陆执行 nohup 后,即便退出登陆后,程序仍是会正常执行。一般状况下,nohup 命令最后会跟上 & 字符,表示将这个命令放至后台执行,这样才能真正作到将这个命令放至后台持续的执行。服务器
操做示例:
1. 正常的执行命令为 bash hello.sh,执行结果为每秒输出一行的小程序:ssh
2. 在命令头尾分别加上 nohup 和 &,变为 nohup bash hello.sh &,能够看到 nohup 输出了一行信息,再按一下回车键就跳回了 shell 命令行,此时命令已经在后台执行了,nohup 将命令的输出重定向至当前目录的 nohup.out 文件中。同时注意到 nohup 会将对应程序的 PID 输出,PID 可用于须要中断进程时 kill 进程。jsp
3. 经过 tail -f nohup.out 能够持续的查看 nohup.out 的输出,达到监视程序的效果。ide
4. 在命令中也可使用重定向将程序的输出改成本身想要的文件名,如 nohup bash hello.sh >hello.log &,则程序的输出就会写到 hello.log 文件中。工具
5. 若程序不会自动退出,那么此时须要使用 kill 命令来结束进程。好比,可使用命令 kill -TRM <PID> 来操做,其中 PID 即为以前 nohup 输出的值,在此例中该值为 1231。
使用限制:
nohup 一般用于执行无干预的自动化程序或脚本,没法完成带有交互的操做。
使用 screen 执行
安装 sceen 工具
Linux 系统默认未自带 screen 工具,须要先进行安装:
-
CentOS 系列系统: yum install screen
-
Ubuntu 系列系统: sudo apt-get install screen
使用简介
1. 建立 screen 窗口
1 2 3 |
|
2. 列出 screen 进程,并进入所需 screen
1 |
|
以下图
而后进行所需操做,好比运行脚本、执行程序等等。
以下图示例:建立ftp链接后台下载传输文件
3. 退出保存
前述 ftp 操做示例开始传输后,在窗口中键入Ctrl+a 键,再按下 d 键,就能够退出 SSH 登陆,但不会影响 screen 程序的执行。
4. 保存会话以便继续执行
能够利用 screen 这种功能来管理的远程会话。操做步骤概述:
-
正常 SSH 登陆服务器
-
建立 screen 窗口
-
执行所需任务
-
须要临时中断退出时,按 Ctrl +d 保存退出
-
须要继续工做时,再次 SSH 登陆服务器,而后直接执行 screen -r -d 恢复会话便可。
以上就是Linux中SSH客户端断开后保持进程继续运行配置方法的具体介绍的详细内容,更多请关注php中文网其它相关文章!