linux任务后台运行的几种方法
- disown
bash task.sh
ctl z
bg
# 加上-h选项之后当前会话jobs能看到对应的job,但是关闭当前会话,job的父进程会切换到1,不会收到SIGHUP信号
disown -h %1
#直接切换对应pid的owner
disown pid
- screen
# create session with specific name
screen -S session_name
# resume from the default session
screen -r
# resume from the specific session name
screen -r <name>
# list all screen sessions
screen -ls
# detach from current screen session
ctl a d
# exit and kill current screen session
ctl d
- nohup
nohup bash task.sh &> task.log &
挂起进程,但是不杀死进程。比如容器pod中某一个任务被kill掉会导致pod退出,如果想将该任务挂起,可以通过如下方法
kill -STOP <pid>
# 恢复
kill -CONT <pid>