Linux会话关闭后进程后台继续执行的方法

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

    #执行一个命令
    python manage.py runserver 0.0.0.0:80


1. 采用&
    python manage.py runserver 0.0.0.0:80 &
    ctrl+d #退出 才可以,如果直接关闭窗口,进程任然会被关闭
2. 采用nohup
    nohup python manage.py runserver 0.0.0.0:80
    ctrl+z #挂起到后台
    bg #后台执行  可以先通过jobs 查看当前有多少job
    ctrl+d  #或者 关闭窗口  进程任然会在后台执行

3.采用nohup + &
    nohup python manage.py runserver 0.0.0.0:80 &
    ctrl+d  或者 关闭窗口  进程任然会在后台执行

4.采用(command &)
    (python manage.py runserver 0.0.0.0:80 &)   #会将ppid设置为1,而非当前会话的id,并且jobs查看不到当前的作业。注意这里的括号即是这个方法的重点。
    ctrl+d  #或者 关闭窗口  进程任然会在后台执行


5.采用setid run a program in a new session
    setid python manage.py runserver 0.0.0.0:80 #会将ppid设置为1,而非当前会话的id
    ctrl+d  #或者 关闭窗口  进程任然会在后台执行

6.采用disown
    python manage.py runserver 0.0.0.0:80
    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
    python manage.py runserver 0.0.0.0:80
    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 来暂时断开当前会话。

参考:https://blog.csdn.net/saife/article/details/78276014 
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chengjieno1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值