linux shell 在后台运行命令

前台 当在前台运行命令时,shell将一直等到命令执行完毕,shell会给出提示符,使用户可以继续输入下一条命令。当命令在后台运行时,不必等待该命令完成 ,就可以直接运行另一条命令。

作业 是指由一个或者(通过 管道连接的)多个命令组成的序列。前台只能有一个作业位于窗口或者屏幕中,但可以有多个作业在后台运行。同一时间运行多个作业是linux的重要特性,这常称为多任务特性。

作业编号与PID编号 如果在命令行的末尾输入与符号(&)后按RETURN 键,那么shell将在后台运行这个作业。同时,shell会给这个作业分配一个作业编号(一个小的数字),并将其显示在方括号内。在作业编号之后,shell将显示进程标识(process identification,PID).

下面给出了在后台运行作业的示例,该作业将ls的输出通过管道发送到lpr,即要打印ls 的输出 结果。
$ls -l | lpr &

将作业从前台移到后台


control+z (挂起) 将把前台的作业挂起(在不终止作业的情况下阻止其继续运行)。然后,shell终止作业中的进程,将进程的标准输入与键盘断开。 bg命令后跟作业编号可以将挂起的作业放到后台运行。如果仅有一个作业被挂起,就不必指明作业编号。
只有前台作业可以从键盘获得输入。

kill 终止后台作业

在命令行上输入kill和进程的PID编号(或者后跟%和作业编号),可以将后台正在运行的进程(或作业)终止,使用中断键(control + c)不能终止后台进程。


用ps确定程序的PID编号
ps(process status)

用jobs来显示作业编号
【linux shell 在后台运行命令】

    推荐阅读