Linux 进程前后台的切换
1. 实现进程前后台切换的 Shell 命令:
- command &:可以让 command 进程在后台运行
- jobs 命令: 可以查看后台运行的进程
- ctrl + z 组合键:可将一个正在前台执行的命令放到后台,并且暂停
- fg %jobnumber : 将后台中的命令调至前台继续运行,可以用 fg %jobnumber 将选中的命令调出,%jobnumber 是通过 jobs 命令查到的后台正在执行的命令的序号(不是 PID )
- bg %jobnumber:将一个在后台暂停的命令,变成继续执行,可以用 bg %jobnumber 将选中的命令调出,%jobnumber 是通过 jobs 命令查到的后台正在执行的命令的序号(不是 PID )
- kill %jobnumber: 杀死 job
fg、bg、jobs、&、ctrl + z 都是跟系统任务有关的,虽然基本上不怎么需要用到,但学会了也是很实用的。
2. 进程前后台切换应用实例:
假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情:
第一步:用 Ctrl + Z ,暂停程序,可以看到系统提示:
[1]+ Stopped /root/bin/rsync.sh
如果没有此提示,用 jobs 命令查看任务:
#jobs
[1]+ suspended /root/bin/rsync.sh &
第二步:把程序调度到后台执行:(bg 后面的数字为作业号)
#bg %1
[1]+ /root/bin/rsync.sh &
第三步:用 jobs 命令查看正在运行的任务:
#jobs
[1]+ Running /root/bin/rsync.sh &
第四步:调回到前台运行
#fg %1
/root/bin/rsync.sh
这样,在控制台上就只能等待这个任务结束。