Linux 中 fg、bg、jobs 等指令
记录总结一下
Linux
中fg
、bg
、jobs
、&
、ctrl + z
等相关指令对任务进程的操作。
一、基本用法
1.1 &
和 jobs
指令
&
用在一个命令的最后,可以把这个命令转换为后台运行的任务进程。
jobs
查看当前终端有多少在后台运行的进程。
jobs
命令执行的结果,+
表示是一个当前的作业,-
减号表示是一个当前作业之后的一个作业。jobs -l
选项可显示所有任务的进程号pid
jobs
的状态可以是running
,stopped
,terminated
。但是如果任务进程被终止了(kill
),当前的终端环境中也就删除了任务的进程标识;也就是说 jobs 命令显示的是当前 shell 环境中后台正在运行或者被挂起的任务进程信息
1.3 fg
和 bg
指令
fg
将后台任务进程调至前台继续运行,如果后台中有多个任务进程,可以用 fg %num
将选中的任务进程调至前台。
bg
将挂起的任务进程重新启动运行,如果有多个暂停的任务进程,可以用 bg %num
将选中的任务进程启动运行。
%num
是通过jobs
命令查到的后台正在执行的任务的序号(不是pid
)
二、进程的挂起
2.1 后台进程的挂起
在
solaris
中通过stop
命令执行,通过jobs
命令查看任务号(假设为num
),然后执行:stop %num
在
redhat
中,不存在stop
命令,可通过执行命令kill -stop PID
,将进程挂起
2.2 前台进程的挂起
ctrl + z
:可以将一个正在前台执行的任务放到后台运行,并且挂起
三、挂起进程重新运行
通过
bg %num
即可将挂起的任务进程的状态由stopped
改为running
,仍在后台运行通过
fg %num
即可将挂起的任务进程转为前台执行
四、进程的终止
4.1 后台进程的终止
方法一: 通过
jobs
命令查看任务号(假设为num
),然后执行:kill %num
方法二: 通过
ps
命令查看任务的进程号(PID
,假设为pid
),然后执行:kill pid
4.2 前台进程的终止
执行 ctrl+c
即可终止前台执行任务进程
假设要后台运行
xmms
,可通过命令:xmms &
。但万一你运行程序时忘记使用&
了,又不想重新执行,你可以先使用ctrl+z
挂起任务进程,然后敲入bg
命令,这样任务进程就在后台继续运行了。