保持进程在Shell退出后能继续运行方法

原文地址:http://hi.baidu.com/jasonlyy/item/483829b89343f7e24ec7fd2b

 

当在shell中运行一些监视工具或磁盘检查等任务时,往往需要很长时间,此时假如用户logout,这些程序都会收到SIGHUP信号从而终止,显然这样是不行的。
 
程序nohup和bash内建命令disown可以解决此问题。
 
1.nohup
 
nohup [command]
 
运行该指令之后,command在执行时将会忽略SIGHUP信号。
 
假如command中对标准输出没有重定向,nohup会将标准输出和标准错误输出到nohup.out文件,该文件存在当前目录下或home目录下。
 
此时用户logout,command仍然会继续运行
 
2.disown
 
disown -h jobnumber
 
jobnumber由jobs获得。
 
该指令使得后台命令忽略SIGHUP信号。
 
disown -ar
 
所有后台命令都忽略SIGHUP信号。

你可能感兴趣的:(linux,shell)