shell编程之基本bash命令10

文章来源:角膜穿孔   发布时间:2018-2-22 21:00:43   点击数:
  

前面几篇我们说到了监控系统进程,本篇要看看如何结束进程。何时以及如何结束一个进程对我们系统管理员来说是重要的。

例如:有时进程挂起了,我们只要动动手让其重新运行或结束就行了。但有的进程即使耗尽了CPU也不释放资源,这些情况就比较麻烦了。在这些情况下,我们就必须有能控制进程的命令。

在Linux中,进程之间通过信号来通信的。

进程的信号就是预定义好的一个消息,进程能识别它并决定忽略还是作出反应。

当然,进程如何处理这些信号是由我们开发人员通过编程来决定的。

大多数编写完善的程序都能接收和处理标准Unix进程信号:

信号名称描述1HUP挂起2IN中断3QUIT结束运行9KILL无条件终止11SEGV段错误15TERM尽可能终止17STOP无条件停止运行,但不终止18TSTP停止或暂停,但继续在后台运行19CONT在STOP或TSTP之后恢复执行

在Linux上有如下两个命令可以向运行中的进程发出进程信号:

kill命令

killall命令

kill命令

kill命令可通过进程ID(PID)给进程发信号。

默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM信号。

它只能用进程的PID号,而不能用命令的名称。

要发送进程信号,我们必须是进程的属主或登录为root用户。

示例:

$ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot月19?00:00:07/usr/lib/systemd/systemd--switched-root--system--deserialize21root月19?00:00:00[kthreadd]root月19?00:00:00[ksoftirqd/0]root月19?00:00:00[kworker/0:0H]root月19?00:00:00[migration/0]root月19?00:00:00[rcu_bh]root月19?00:00:04[rcu_sched](省略)hisea:17pts/:00:00-bashhisea:18pts/:00:00ping







































北京中科白癜风康复明星
中科白癜风暖心公益活动

转载请注明:http://www.iwkqm.com/hbwh/7824.html