文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux学堂之让进程在后台运行的方法

lzzyok小宝贝

lzzyok小宝贝

2024-04-18 00:02

关注

  相信大家在使用Linux的过程中都遇到过在Linux服务器运行一些耗时较长的任务时由于网络的不稳定导致任务中途失败的这样一个情况出现,对于不懂得处理的朋友大多数情况只能忍气重新进行任务。那么有没有什么解决方法让我们在提交命令后不受本地关闭终端窗口/网络断开连接的干扰呢?为此在本文中编程学习网笔者就为大家列举几种解决的方法供大家参考参考,让大家再遇到此类情况时游刃有余。

Linux学堂之让进程在后台运行的方法_考试认证_Linux认证_Linux_编程学习网

  


 

  nohup

  相信大家首先想到的方法是利用nohup来解决。我们知道nohup的用途就是让提交的命令忽略hangup信号。一般来说我们只需在要处理的命令前加上nohup,标准输出和标准错误缺省就会被重定向到nohup.out文件中。另外我们可以在结尾加上"&"来将命令同时放入后台运行,也可用">filename 2>&1"来更改缺省的重定向文件名。

  下面是nohup的示例用法:

  [root@kokojia ~]# nohup ping www.kokojia.com &

 

  [1] 3059

 

  nohup: appending output to `nohup.out'

 

  [root@kokojia ~]# ps -ef |grep 3059

 

  root 3059 984 0 15:06 pts/3 00:00:00 ping www.kokojia.com

 

  root 3067 984 0 15:06 pts/3 00:00:00 grep 3059

 

  [root@kokojia ~]#

 

 


 

  

  ②setsid

  虽然nohup能通过忽略HUP信号来使我们的进程避免中途被中断,但如果我们的进程不属于接受HUP信号的终端的子进程,那么也就不会受到HUP信号的影响了。此时setsid就能帮助我们做到这一点。具体我们可以通过在要处理的命令前加上setsid就可以了。

  下面是setsid的示例用法:

  [root@kokojia ~]# setsid ping www.kokojia.com

 

  [root@kokojia ~]# ps -ef |grep www.kokojia.com

 

  root 31094 1 0 07:28 ? 00:00:00 ping www.kokojia.com

 

  root 31102 29217 0 07:29 pts/4 00:00:00 grep www.kokojia.com

 

  [root@kokojia ~]#

  PS:这里需要大家注意的地方是,上例中我们的进程ID(PID)为31094,而它的父ID(PPID)为1(也就是为init进程ID),并不是当前终端的进程ID。

  


 

  & subshell

  我们知道将一个或多个命名包含在“()”中就能让这些命令在子shell中运行中从而扩展出很多有趣的功能。当我们将"&"也放入“()”内之后就会发现所提交的作业并不在作业列表中,也就是说是无法通过jobs来查看的。

  下面是subshell的示例用法:

  [root@kokojia ~]# (ping www.kokojia.com &)

 

  [root@kokojia ~]# ps -ef |grep www.kokojia.com

 

  root 16270 1 0 16:13 pts/4 00:00:00 ping www.kokojia.com

 

  root 16278 15362 0 16:13 pts/4 00:00:00 grep www.kokojia.com

 

  [root@kokojia ~]#

  从上例中我们可以看出新提交的进程的父ID(PPID)为1(init 进程的 PID),并不是当前终端的进程ID。因此并不属于当前终端的子进程,从而也就不会受到当前终端的HUP信号的影响了。

  


 

  以上就是在Linux中让进程在后台运行的方法。

  本次的Linux学堂之让进程在后台运行的方法的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习Linux和Linux认证能够起到一定的帮助作用!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-考试认证-考试信息-考试报考
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯