如果这篇博客帮助到你,可以请我喝一杯咖啡~
CC BY 4.0 (除特别声明或转载文章外)
nohup 命令与 & 命令
nohup
是指 no hang up,让进程忽略 SIGHUP
信号,当 session 结束时,进程依然会运行
&
表示让进程在后台运行。一般放在命令的最末尾。
在 shell 1 中输入如下命令
nohup ./main &
然后关闭 shell 1,打开 shell 2
ps -axjf | head -1 && ps -axjf | grep main
❯ ps -axjf | head -1 && ps -axjf | grep main
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1 142145 142145 120383 ? -1 SN 0 0:00 ./main
ctrl + z 将进程挂起到后台
ctrl+z表示将当前前台运行的经常放在后台并挂起,如需其在后台继续运行,需用“bg 进程号”使其继续运行;再用”fg 进程号”可将后台进程前台化。
jobs 命令
显示当前 shell 后台运行的进程
-l
查看进程 pid
fg/bg 命令
fg
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用
fg %jobnumber
将选中的命令调出,%jobnumber
是通过jobs
命令查到的后台正在执行的命令的序号(不是pid)bg
将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用
bg %jobnumber
将选中的命令调出,%jobnumber
是通过jobs
命令查到的后台正在执行的命令的序号(不是pid)
fg
如果没有指定后台进程,则选中最近放到后台执行的命令
❯ jobs
[1] + suspended nohup ./main
[2] - suspended nohup ./main
❯ fg %2
[2] - 174411 continued nohup ./main
^Z
[2] + 174411 suspended nohup ./main
❯ fg %1
[1] - 174358 running nohup ./main
^Z
[1] + 174358 suspended nohup ./main