|
Linux中的kill下令用来终止指定的历程(terminate a process)的运转,是Linux下历程办理的常用下令。凡是,终止一个前台历程可能操纵Ctrl+C键,然则,对付一个后台历程就须用kill下令来终止,咱们就需求先操纵ps/pidof/pstree/top等用具获取历程PID,然后操纵kill下令来杀掉该历程。kill下令是通过向历程发送指定的信号来罢了相应历程的。
Linux中的kill下令用来终止指定的历程(terminateaprocess)的运转,是Linux下历程办理的常用下令。凡是,终止一个前台历程可能操纵Ctrl+C键,然则,对付一个后台历程就须用kill下令来终止,咱们就需求先操纵ps/pidof/pstree/top等用具获取历程PID,然后操纵kill下令来杀掉该历程。kill下令是通过向历程发送指定的信号来罢了相应历程的。正在默认情状下,采用编号为15的TERM信号。TERM信号将终止总共不行缉捕该信号的历程。对付那些可能缉捕该信号的历程就要用编号为9的kill信号,强行“杀掉”该历程。
发送指定的信号到相应历程。不指定型号将发送SIGTERM(15)终止指定历程。借使任无法终止该措施可用“-KILL”参数,其发送的信号为SIGKILL(9),将强制罢了历程,操纵ps下令或者jobs下令可能查看历程号。root用户将影响用户的历程,非root用户只可影响己方的历程。
-l信号,若果不加信号的编号参数,则操纵“-l”参数会列出全体的信号名称
1、kill下令可能带信号号码选项,也可能不带。借使没有信号号码,kill下令就会发出终止信号(15),这个信号可能被历程缉捕,使得历程正在退出之前可能清算并开释资源。也可能用kill向历程发送特定的信号。比方:
它的效率等同于正在前台运转PID为123的历程时按下Ctrl+C键。然则,浅显用户只可操纵不带signal参数的kill下令或最众操纵-9信号。
2、kill可能带有历程ID号行为参数。当用kill向这些历程发送信号时,务必是这些历程的主人。借使试图裁撤一个没有权限裁撤的历程或裁撤一个不存正在的历程,就会取得一个谬误新闻。
4、当kill胜利地发送了信号后,shell会正在屏幕上显示出历程的终止新闻。有时这个新闻不会急忙显示,惟有当按下Enter键使shell的下令提示符再次产生时,才会显示出来。
5、应谨慎,信号使历程强行终止,这常会带来少少副效用,如数据损失或者终端无法收复到平常形态。发送信号时务必小心,惟有正在万不得已时,才用kill信号(9),由于历程不行开始缉捕它。要裁撤总共的后台功课,可能输入kill0。由于有些正在后台运转的下令会启动众个历程,跟踪并找到总共要杀掉的历程的PID是件很烦杂的事。这时,操纵kill0来终止总共由目前shell启动的历程,是个有用的措施。
惟有第9种信号(SIGKILL)才可能无要求终止历程,其他信号历程都有权益大意。下面是常用的信号:
init是Linux编制操作中弗成匮乏的措施之一。所谓的init历程,它是一个由内核启动的用户级历程。内核自行启动(仍旧被载入内存,劈头运转,并已初始化总共的配置驱动措施和数据组织等)之后,就通过启动一个用户级措施init的体例,实现教导历程。因此,init永远是第一个历程(其历程编号永远为1)。其它总共历程都是init历程的子孙。init历程是弗成杀的!
|
|