一、基本用法
1.1 & 和 jobs 指令 & 用在一个命令的最后,可以把这个命令转换为后台运行的任务进程。
jobs 查看当前终端有多少在后台运行的进程。
jobs 命令执行的结果,+ 表示是一个当前的作业,- 减号表示是一个当前作业之后的一个作业。
jobs -l 选项可显示所有任务的进程号 pid
jobs 的状态可以是 running,stopped,terminated。但是如果任务进程被终止了(kill),当前的终端环境中也就删除了任务的进程标识;也就是说 jobs 命令显示的是当前 shell 环境中后台正在运行或者被挂起的任务进程信息
二、进程的挂起
如果有一个任务执行时间很长,你不想让它占用你的交互shell,可以把它放到后台去,只需在命令后加 & 号比如:
如果任务正在执行,可以通过 Ctrl+Z将其放到后台挂起:
三、进程查看
可以用jobs命令查看后台执行的所有任务:
注意,如果任务是暂停执行(Stopped),然后放到了后台,如果要让它在后台运行就要在后台启动它,可以用bg命令:
bg %N ;N是后台编号,就是上面方括号里的编号,不带参数就对最后一个任务生效
四、进程的终止
4.1 后台进程的终止
方法一: 通过 jobs 命令查看任务号(假设为 num),然后执行:kill %num
方法二: 通过 ps 命令查看任务的进程号(PID,假设为 pid),然后执行:kill pid
4.2 前台进程的终止
执行 ctrl+c 即可终止前台执行任务进程
假设要后台运行 xmms,可通过命令:xmms &。但万一你运行程序时忘记使用 & 了,又不想重新执行,你可以先使用 ctrl+z 挂起任务进程,然后敲入bg 命令,这样任务进程就在后台继续运行了。
总结:1. 把任务放到后台用 & 和 Ctrl+z
2. 让后台任务从停止状态转为运行状态用 bg %N
3. 把后台任务调回到前台用 fg %N
4. 查看所有任务用jobs
5.后台进程终指kill %num或者kill pid
前台进程终止ctrl+c