知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

shell退出后后台程序保持运行

发布时间:2014-09-05 14:22:29作者:知识屋

shell退出后后台程序保持运行
 
在liunx上,如果想让一个进程在后台运行,最直接的方法是用&符号. 
比如ping www.baidu.com & 
 
但是这样一来,这个进程便成为了当前shell的一个job,在shell退出时,job会收到一个信号,也随之停止. 
处理这个问题,可以使用nohup命令,让job忽略shell的退出信号,也可以采用其他方式. 
 
既然后台命令作为shell的子进程会在shell退出时被杀掉,那么只要不让后台命令作为shell的子进程即可.比较简单的方式是利用subshell来调用后台命令. 
比如写个start.sh 
 
#!/bin/bash 
ping www.baidu.com & 
 
然后在shell中调用start.sh. 
 
./start.sh 
 
我猜测虽然start.sh是ping命令的父进程,但是start.sh运行完毕就退出了,ping命令成了孤儿进程,会被init进程收养.所以退出shell也不会导致ping命令中断
 
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜