Linux和Unix是多任务操作系统,也就是说一个系统可以同时运行多个任务(进程)。在这个新的博客系列中,我将列出相关的Linux和Unix作业控制命令,您可以使用这些命令在Bash或Korn以及POSIXshell中进行多任务处理。什么是作业控制?作业控制不仅可以停止/暂停(stop/suspend)正在执行的进程(命令),还可以继续/唤醒(continue/resume)执行每一个你需要的进程。这完全可以通过您的操作系统和shell(例如bash/ksh或POSIXshell)来完成。谁为作业控制提供环境?Bash/Kornshell或POSIXshell为作业控制提供了一个环境。向家庭作业单打个招呼你的shell保存着当前作业的列表,称为家庭作业单。当您键入命令时,shell会为其分配一个jobID(也称为JOBSPEC)。jobID或JOBSPEC只是一个小整数值。#1:创建你的***Linux/Unix作业我将运行一个名为xeyes的命令,它将在屏幕上显示两个椭圆形的眼睛,输入:$xeyes&示例输出:图01:在后台运行xeyes命令我使用&符号使作业在后台运行。shell会打印一行类似如下的信息:[1]6891本例中有两个数字输出,分别代表:1:后台执行的xeyes任务的作业号为1。6891:进程工作ID1。我正在执行更多作业:##Startatexteditor,Xsystemloaddisplay,andsleepcommand##gedit/tmp/hello.c&xload&sleep100000:Listthecurrentjobstoviewtheactivetaskstatusofthecurrentshell,Input:$jobs$jobs-l输出如下:[1]9379Runningxeyes&[2]9380Runninggedit/tmp/hello.c&[3]-9420Runningxload&[4]+9421Runningsleep100000&简要说明如下:也可以使用psname来列出当前系统正在运行的进程:$ps#3:停止或暂停正在运行的作业按[Ctrl]-[Z]键或使用kill命令,如下:kill-sstopPID例如启动ping命令,然后使用Ctrl-Z停止ping作业:动画gif01:暂停ping作业
