使用SSH远程登陆上Linux服务器,运行一些耗时的任务时,如果因为网络中断,这些任务也会就此中断,应此需要这些任务不受终端断开而影响,首先先看下图:

这是运行以下命令的结果 : ping localhost > /dev/null &,很明显ping是sshd的子子进程,因此当sshd断开连接时,ping命令必然会终止。

以下有几种方法避免此种情况发生:

一、使用nohup:

在网络断开和logout时,终端会收到hup信息,因此会关闭其所有子进程,nohup正是针对此情况:

运行如下命令: nohup ping localhost > /dev/null & ,然后断开终端,可以看到:

断开终端之后,父进程ID变为1,即被init所接管的孤儿进程,因为其原来的父进程30999已经退出。

二、使用setuid

setuid ping localhost > /dev/null &

可见setsid直接将其父进程ID设置1

三、使用()加上&元字符

运行如下命令:( ping localhost > /dev/null &)

同setsid一样结果,过程是如下的

├─sshd─┬─sshd─┬─bash───bash───ping

因为&是元字符,因此会新开一个bash来解释执行ping,然后()使ping成为子shell,右边的bash在解释完毕后会退出,但是ping子进程还在,因此使其成为孤儿进程,被init接管。

四、使用screen

可能需要手动安装 yum install -y screen

常用命令:

screen:启用一个screen会话

键入C-a c ,按下Ctrl键+a组合键,然后再按下c键:会在当前screen会话中新建一个窗口/BASH

exit:如果是该screen会话的唯一窗口,该screen会话将会退出,否则screen会切换到前一个窗口。

screen -d pid:detach分离screen会话

screen -r pid:reattach重新附着会话,比如你可以在一个会话中前台运行ls -R  /,然后退出screen会话,再reattach该会话,可以发现仍在继续执行或者已经执行完毕。

五、使用disown

用法如下:

disown -h jobspec : 让某个作业忽略HUP信号。

disown -ah : 让所有作业忽略HUP信号。

disown -rh : 让正在运行的作业忽略HUP信号。

针对作业,适用于运行时比如加了 & 的命令,使用此命令后会将其从作业列表中删除,如果是前台运行的命令的话,可以先按Ctrl+Z,然后bg jobspec,再使用disown即可。

linux终端进程bash,让Linux的进程不受终端影响相关推荐

  1. 在linux下创立bash文件,Linux文件管理及bash特性

    一.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 mkdir,rmdir,pwd,cd,cp,touch,mv 1.mkdir:创建目录 -p:递归创建多个目录 2.rmdi ...

  2. linux子系统 显卡,bash 漏洞?linux授权命令sudo?windows linux子系统?新手理解的bash环境变量解析漏洞...

    你是否正在寻找关于bash 漏洞的内容?让我把最简洁的东西奉献给你: 1 环境变量是什么 无论是Windows程序还是Linux程序,都支持环境变量,一般来讲环境变量作为赋值字符串的形式存放到进程内存 ...

  3. linux下如何bash文件,Linux系统的文件管理命令及bash的相关工作特性

    一.Linux系统的文件管理命令: 1 \pwd:printing working directory 2 \cd:change directory     cd  [/PATH/TO/SOMEDIR ...

  4. linux端口是什么服务,LINUX的端口和服务有什么关系

    一般的话是只有那些需要连接网络(包括局域网)的服务才会用到端口.而如果存在一个端口,那么就一定是对应有一个服务开启了这个端口,并且会在某些时刻使用它进行通信.下面学习啦小编为大家分享LINUX端口和服 ...

  5. linux守护进程写法_搞懂进程组、会话、控制终端关系,才能明白守护进程如何创建...

    守护进程 概念: 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程.周期性的执行某种任务或等待处理某些发生的事件. Linux系统有很多守护进程,大多数服务都是用守护进程实现的 ...

  6. linux信号传递给进程,bash中的信号处理机制

    Linux 中的信号 信号(Signal)是操作系统中常用的进程通信手段, 主要用来描述特定事件的发生, 进程接收到信号时有以下几种处理方式: 捕获并自定义处理函数: 给signal系统调用传递自定义 ...

  7. linux使进程不依赖终端,Linux nohup命令应用简介--让Linux的进程不受终端影响

    nohup命令应用简介--让Linux的进程不受终端影响 by:授客 QQ:1033553122 #开启ping进程 [root@localhost ~]# ping localhost & ...

  8. linux终端和执行进程的关系,Linux系统编程第04期:打通进程与终端的任督二脉

    本课程是<嵌入式工程师自我修养>自学教程六步走中的第3步:Linux系统编程第04期. 进程,是Linux系统中任务调度运行的基本单元:一个程序的运行,都要被操作系统包装成"进程 ...

  9. Linux杀100个进程,在linux bash中杀死一个进程子树

    我正在键入一个小的bash脚本,它应该克隆一个git存储库,签出一个特定的硬编码分支并监听一些新的提交.如果发现新的提交,脚本应该杀死正在运行的'MyApp'实例,执行git pull并最终使用gra ...

最新文章

  1. 一文掌握机器学习必备数学知识(附学习资源)
  2. 深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)
  3. java C语言内存占用_使用Cgroup限制Java使用的内存量-思路
  4. 某计算机系大二级共有5个班,2016年计算机二级考试MS Office题库及答案
  5. linux cat 命令详解
  6. CTF-杂项16进制字符串类型的题目
  7. springboot yml怎么建常量_Springboot中加载自定义的yml配置文件
  8. vfp 8.0中image控件的属性:RotateFlip
  9. mongoDB非关系型数据库
  10. Educational Codeforces Round 1
  11. Java常用设计模式————原型模式(一)
  12. C++ 集成和派生练习题解答
  13. gtk学习总结:GTK从入门到放弃,三天包教包会
  14. 以太坊2.0合约余额新增3872 ETH
  15. 杨潮观《偷桃捉住东方朔》
  16. 1110_win10专业版官方原版镜像64位
  17. LONG RAW转换BLOB
  18. SAS数据导入input要点
  19. QTTabBar安装与使用: 更胜浏览器的Windows平台浏览文件方式
  20. 微软Hyper-V虚拟机复制实现双机备份过程

热门文章

  1. predefined data types in UI5
  2. 用postman在CSDN上创建博客
  3. ABAP SOAMANAGER暴露的函数function module,以web service方式执行的运行时细节
  4. 另一种ABAP解析XML file的方式
  5. Report framework entry point CRM_BSP_OIC_1O_SEARCH_FROM_RF
  6. 使用Java操作汉字编码的一个例子
  7. Spring源代码研究之how is Bean object created
  8. 使用openSSL构造一个支持https的nodejs服务器
  9. Kubernetes pod滚动升级rolling update的一些例子,截图和命令
  10. SAP Hybris Enterprise Commerce Platform ECP架构综述