Linux中SSH客户端断开后保持进程继续运行配置方法的具体介绍


本文摘自PHP中文网,作者黄舟,侵删。

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

使用管理终端执行

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

1. 通过 管理终端 登录服务器。

2. 执行所需程序或脚本。

3. 下次需要查看任务执行状态时,再次连接管理终端查看即可。

使用 nohup 执行

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

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

z1-1.png

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

z1-2.png

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

z1-3.png

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 窗口

阅读剩余部分

相关阅读 >>

Linux怎么重置管理员密码

Linux下怎么运行java?

Linux touch命令详解

关于四种安全的内网实例互通设置方法

Linux 中查询 cpu 的核数

Linux中的ls命令如何使用

Linux的命令怎么用

Linux使用手册之安装clion和运行使用总结

Linux中如何安装后缀为.deb的文件

Linux复制文件的命令是什么?

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    暂无评论...