作业和进程的区别与联系



在这里,对作业和进程的概念就不多说了,我直接说他们的联系和区别。

一:联系。

  • 一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
  • 用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。

二:区别。

     进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。

     [ ]中的数字是作业号,在用kill杀死作业的时候用kill %[ num]

     pid 是进程号,在用kill杀死进程的时候可以直接用kill -pid。

三:实例。

feilongiandeAir:笔记 mac126$ jobs

[1]-  Stopped                 top

[2]+  Stopped                 top

feilongiandeAir:笔记 mac126$ ps

  PID TTY           TIME CMD

1701 ttys000    0:00.06 -bash

一般的后台作业管理操作是:
       1)jobs命令列出所有后台作业
       2)Ctrl+Z来挂起当前作业(stopped)
       3)bg %JOBID运行程序在后台运行(running)
       4)fg %JOBID(或者简单的用%JOBID)让后台程序到前台来运行
       5)kill %JOBID杀死一个后台程序,%%代表最近的作业,%-代表次最近的作业。。
       6)在后台作业输出前暂停它们
             stty tostop让后台作业在启动输出之前挂起。。
             CMD &
             jobs查看后台作业是否stopped,若是,已准备好输出,running表示没有
             fg %JOBID将该job放到前台输出。。。

kill一个作业
            kill PID,如果某些不合作,你可以用kill -9 PID,这会保证你能杀死PID,但是也是比较危险的,所以一定要检查两遍以上的PID号,以免“错杀好人”,一失足成千古恨!
用ps查找PID
         你可以使用ps -ef或者ps aux,这要看你的系统支持哪个。。当然你可以用grep在众多的输出选在或者删除(grep -v)你所要的。。。
 

​​​​​​

猜你喜欢

转载自blog.csdn.net/astx1596321/article/details/81188422