Unix操作系统中的进程指的是一个具有特定功能的程序,它可以和其他程序共享对某个数据集合的操作。进程被应用程序创建之后,在获得资源时运行。如果得不到资源,就暂时停止直到获得其所需要的资源。进程完成后消忙。故进程与普通程序仍然有所差别。
把前台进程移动到后台去进行
有时候出于某些特定的需要,系统工程师可能要把某些在前台运行的进程放入到后台去运行。一个比较感性的例子,就如杀毒软件。全盘杀毒需要比较长的时间。若哪个杀毒的窗口老是用户眼前晃的话,让人很不舒服。为此系统工程师就需要考虑把这个前台正在运行的进程放入到后台运行。在Unix操作系统中,这个功能经常用到。如工程师可能让系统每天在一个固定的时刻对Home用户文件夹进行备份。
为了避免对用户的干扰,可以把这个备份进程放在后台执行。故Unix操作系统工程师要掌握把前台进程放入到后台执行、把后台作业调入到前台等等相关操作,并能够排除由此产生的一些错误。这也是Unix操作系统高级工程师考试时的必备考点之一。
1、如何把前台作业移动到后台?
如果为了在运行进程时可以进行其他工作,工程师可以让某个进程在后台执行。注意如果把进程放入到后台运行,则系统当前运行的shell会给这个进程分配一个作业号。注意,由于作业号不是操作系统分配的,而是shell分配的,故它只代表了后台运行的活动进程。最要命的是,它在操作系统中并不是唯一的。
若要把一个正在执行的进程放入到后台,则首先需要把正在执行的进程挂起。系统工程师若要把正在执行的进程挂起的话,可以采用挂起键。工程师可以在进程执行过程中,暂停他的执行过程,并在以后继续执行。
这个操作在Unix操作系统中叫做挂起。通称情况下,系统工程师之能够挂起一个当前shell下的作业(不过这对系统工程师来说已经足够了)。挂起作业的方法主要有两种,一是按CTRL+Z键,二是按系统当前定义的挂起建。把进程挂起后再使用bg命令把挂起的进程放入到后台运行。这个命令的格式为,bg % 进程标示号或者作业号、命令名等等。笔者这里建议是采用进程的标识号,而不是作业号。因为作业号在系统中并不唯一。故可能会引发一些误操作。
2、如何把后台作业移动到前台?
有时候管理员需要把后台进程移动到前台。如系统工程师发现后台进程迟迟没有完成,怀疑这个进程有问题,需要手工关闭它。通常情况下,系统工程师是无法强制关闭后台进程的。若要关闭后台进程,必须先把后台进程移动到前台,然后再用关闭进程命令关闭。也就是说,为了中断一个后台作业,可以先把它移动到前台,然后再使用前台中的中断控制进程指令来实现。
把后台进程作业移动到前台的命令是fg,后接%标志,然后指名进程标识号或者命名命名、作业号等等。在执行这个命令的时候,笔者说明两点。一是把后台作业移动到前台与把前台作业移动到后台有一个显著的区别。就是把后台作移动到前台不用把后台正在执行的进程移动到前台。换句话说,在后台执行的进程系统工程师无法进行干预。即无法杀死进程,也无法挂起进程。
除非等着进程自动执行完毕,否则的话工程师对于后台的进程无能为力。二是由于作业号在系统中不唯一,故利用作业号来管理后台进程并不是很好的方法。如现在恰巧有两个作业号相同的后台进程,那么当Unix操作系统工程师要把某个作业号的进程掉到前台运行的时候,系统就不知道到底要调哪一个了。故笔者是建议大家通过唯一的进程标识号来管理后台进程。
3、如何查看正在运行的作业?
当系统工程师发现把进程放入后台后迟迟没有反应,就会担心是否哪里出了问题,就需要查看当前进程的工作状态。此时系统工程师可以通过jobs命令显示当前进程的工作状态。通常情况下,显示进程的状态主要为运行、中断、等待输入或者停止。如果进程的状态为后面三种,则系统工程师就要把它们调入到前台,来分析进程遇到的问题。
这次,关于Unix操作系统把前台进程移动到后台去进行的教学就到这里了。
【编辑推荐】