您的位置:首页 > 运维架构 > Shell

shell中job管理

2016-05-19 12:00 357 查看
参考
http://www.cnblogs.com/ggjucheng/archive/2012/10/21/2733028.html

   在命令后添加一个&,如firefox &:后台执行。
   jobs -l 命令列出当前有多少在后台运行的命令
   Ctrl+z或者发送信号17 : 用于将当前正在运行的前台进程暂停,变成后台进程
   fg :将后台中的命令调至前台继续运行,如fg 1 ,1是编号,或者 fg %name,name为命令名称,如 fg %ping
   bg :将后台暂停的进程继续运行,如bg 1,1是编号
     以远程连线方式连接到你的 Linux 主机,并且将工作以 & 的方式放到背景去(ssh),断开ssh连接后,背景中的工作会中断,详细:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
       可用 【 nohup [命令与参数]   <==在终端机前景中工作 】方式保持不中断
       或者 使用伪终端screen,默认job的bash是sshd的子进程,修改后成为screen伪终端的子进程。pstree -H pid可查看进程的父子关系

 

防止job随着终端shell的退出而退出,可以如下处理:

(1) 使用nohup命令来阻止后台的进程在退出shell后被杀掉,让提交的命令忽略所有的hangup信号。nohup xxxxx

(2)    当前shell退出后任然能保持在后台运行,那么可以在输入disown命令,再退出shell程序。可以在忘记使用:nohup或setsid 的情况下,亡羊补牢。disown –h %jobid

(3)    setsid  xxxxx   可以避开当前终端发出的HUP信号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: