码迷,mamicode.com
首页 > 系统相关 > 详细

Linux后台执行的方法 - 关闭、退出不影响

时间:2018-07-29 15:25:53      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:tac   忽略   使用   process   code   session   block   不可   tar   

难免会遇到在Linux,后台执行任务。下面,总结了一下关闭窗口任然在后台执行的方法,例如

    #执行一个打包命令
    tar czf /data/backup.tgz /data/backup

1. 采用&

    tar czf /data/backup.tgz /data/backup &
    ctrl+d #退出 才可以,如果直接关闭窗口,进程任然会被关闭

 

2. 采用nohup

    nohup tar czf /data/backup.tgz /data/backup
    ctrl+z #挂起到后台
    bg #后台执行  可以先通过jobs 查看当前有多少job
    ctrl+d  #或者 关闭窗口  进程任然会在后台执行

 

3.采用nohup + &

    nohup tar czf /data/backup.tgz /data/backup &
    ctrl+d  或者 关闭窗口  进程任然会在后台执行

 

4.采用(command &)

    (tar czf /data/backup.tgz /data/backup &)   #会将ppid设置为1,而非当前会话的id,并且jobs查看不到当前的作业。注意这里的括号即是这个方法的重点。
    ctrl+d  #或者 关闭窗口  进程任然会在后台执行

 

5.采用setid run a program in a new session

    setid tar czf /data/backup.tgz /data/backup #会将ppid设置为1,而非当前会话的id
    ctrl+d  #或者 关闭窗口  进程任然会在后台执行

 

6.采用disown

    tar czf /data/backup.tgz /data/backup
    ctrl+z
    jobs 
    bg %N
    disown -h %N #N即为job的id  disown 可以配合 &使用,效果更好,因为 CTRL-z 的用途就是将当前进程挂起(Suspend),然后我们就可以用jobs命令来查询它的作业号,再用bg jobspec来将它放入后台并继续运行。需要注意的是,如果挂起会影响当前进程的运行结果,请慎用此方法。
    disown -rh -a xxx  #-a所有 -r所有 -h忽略hup

 

7.采用screen

    screen
    tar czf /data/backup.tgz /data/backup
    ctrl+a d    #不可以直接ctrl+d 这样会ternimate screen

 

用screen -dmS session name来建立一个处于断开模式下的会话(并指定其会话名)。
用screen -list 来列出所有会话。
用screen -r session name来重新连接指定会话。 screen -x session_name(id) 连接attached会话
用快捷键CTRL-a d 来暂时断开当前会话。

Linux后台执行的方法 - 关闭、退出不影响

标签:tac   忽略   使用   process   code   session   block   不可   tar   

原文地址:https://www.cnblogs.com/renpei/p/9385258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!