Linux任务前后台切换的方法

发布时间:2020-01-10编辑:脚本学堂
本文介绍下,在linux中实现任务的前后台切换的方法,学习下command&、jobs、fg、bg等命令的用法,有需要的朋友作个参考。

本节内容:
linux任务的前后台切换。

shell支持作用控制,有以下命令实现前后台切换:
1. command& 让进程在后台运行
2. jobs 查看后台运行的进程
3. fg %n 让后台运行的进程n到前台来
4. bg %n 让进程n到后台去
5. kill %n 杀死job

注意:"n"为jobs命令查看到的job编号,不是进程编号.
fg、bg、jobs、&、ctrl + z都是跟系统任务有关的。
 
一、& 最经常被用到
用在一个命令的最后,可以把这个命令放到后台执行。
 
二、ctrl + z
将一个正在前台执行的命令放到后台,并且暂停。
 
三、jobs
查看当前有多少在后台运行的命令。
 
 四、fg
将后台中的命令调至前台继续运行。
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)。
 
五、bg
将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)。
 
实例:
假设,发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,可以用 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
如此,在控制台上就只能等待这个任务完成了。