博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux ssh exit,启动的后台进程不会停止
阅读量:5239 次
发布时间:2019-06-14

本文共 658 字,大约阅读时间需要 2 分钟。

一般情况下,想要通过终端长时间运行任务,需要使用nohup 或者 screen,如果不使用会怎么样呢?来测试一下
 
描述:
场景1:ssh登录机器,通过添加(&),启动任务到后台,通过exit命令退出,任务依然存在
 
场景2:ssh登录机器,通过添加(&),启动任务到后台,直接关闭ssh终端(GUI 直接叉掉窗口),任务终止
 
测试方法,执行以下命令:
ssh root@DEV_TEST
ping baidu.com 2>&1  1>/dev/null &
exit
 
执行exit后,进程变成孤儿,但依然存在:
 
原因:
bash有如下配置项,默认关闭(通过命令:shopt 查看):
huponexit       off
 
当huponexit 为off时,exit时不会向终端所属任务发SIGHUP信号,激活该选项:
shopt -s huponexit 
 
重复进行上述测试,exit时后台进程退出
 
ps:
可以使用disown, 、对任务屏蔽SIGHUP信号,这样,即使强制关闭终端(或者huponexit开启时exit),任务也不会停止
 
示例:
ssh root@DEV_TEST
ping baidu.com 2>&1  1>/dev/null &
disown -h %1
 
此时强制断开终端(kill 终端进程),进程依旧存在
需要注意,disown后面要加job的编号,如果只有一个job,可以不提供,否则用jobs查看编号
 
 
 
 

转载于:https://www.cnblogs.com/ziziwu/p/4125750.html

你可能感兴趣的文章
java正则表达式语法详解及其使用代码实例
查看>>
第一阶段冲刺08
查看>>
.net webservers的使用
查看>>
数据库快照
查看>>
程序员修炼之道-笔记
查看>>
iOS10遇到有推送的Demo真机报错的解决
查看>>
在liferay中如何使用Ajax的请求
查看>>
liferay中如何获取实例的id和portletId
查看>>
LeetCode_Binary Tree Maximum Path Sum
查看>>
web框架UI系列--MVC常用控件讲解一
查看>>
整理小朋友在noi.openjudge上的作业(3)
查看>>
Educational Codeforces Round 30 B【前缀和+思维/经典原题】
查看>>
The Solution of UESTC 2016 Summer Training #1 Div.2 Problem A
查看>>
js检测服务器端Seesion是否存在
查看>>
AJAX 概念 优势 发展前景 工作原理 底层技术 状态 缺点 框架
查看>>
Tensorflow CPU mask-rcnn 训练模型
查看>>
linux php redis 环境配置
查看>>
写安全代码
查看>>
淡定啊,学习啊
查看>>
解决ping 127.0.0.1不通的问题
查看>>