Linux会话关闭后进程后台继续执行的方法
难免会遇到在Linux,后台执行任务。下面,总结了一下关闭窗口任然在后台执行的方法,例如#执行一个命令python manage.py runserver 0.0.0.0:801. 采用&python manage.py runserver 0.0.0.0:80 &ctrl+d #退出 才可以,如果直接关闭窗口,进程任然会被关闭2....
难免会遇到在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
更多推荐
所有评论(0)