歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 殺死Unix操作系統不服管教的進程

殺死Unix操作系統不服管教的進程

日期:2017/2/28 16:48:25   编辑:Linux教程

筆者在《合理管理進程讓其成為Unix系統的守護神》這篇文章中談到進程是Unix系統的是守護神。可是有時候這個守護神也會鬧別扭,會跟Unix操作系統作對。如明明任務已經執行完成了,但是卻沒有正常結束進程。又或者進程無緣無故占用了大量的系統資源,導致系統速度減慢,影響了其他作業的正常運行。對於這些不服管教的進程,系統工程師只能夠拿起手中的屠刀,實行“殺無赦”政策。

  在Unix系統中有多種手段可以殺死這些異常的進程。通常情況下,筆者建議是殺進程的工作要有序的進行,盡量采取一些對操作系統影響小的方法。

  第一階段:在本機上殺死進程。

  系統工程師可以直接在Unix系統的命令中斷采用相關的命令來殺死異常進程。如可以按鍵盤上的DEL鍵、Ctrl+D鍵、Break鍵等等殺死進程。系統工程師按下這些鍵的任何一個,都會向系統進程發送中斷信號。注意,通常情況下只有root用戶才能夠殺死其他擁護的進程或者系統進程;而其他用戶只能夠殺死自己的進程。如現在Unix系統中要部署一個Oracle數據庫服務器。為了管理方便,Unix系統工程師建立了一個Oracle用戶,用來進行數據庫系統的維護與管理。此時,Oracle這個用戶就會運行幾個進程,如tns等進程。正常情況下,Oracle用戶以及root用戶都可以殺死這個進程。但是如果這個系統中還有其他用戶,則無法殺死這個進程。

  另外如果用戶想殺的進程是shell的子進程,則還可以采用kill命令家進程的作業號的方式。如kill % 作業號等等。Shell是Unix系統中很好的一個交互工具,也有人把它叫做命令行界面,是Unix操作系統下最傳統、歷史最悠久的用戶和計算機的交互截面。系統管理員可以在這裡直接輸入相關的命令來執行各種各樣的維護任務,包括殺死異常進程等等。其實它跟微軟操作系統下的命令行界面很相似,不過也有一些差異的地方。如Unix操作系統下的shell既是用戶與系統交互的界面,也是控制系統的腳本語言。這就是兩者最大的差異。Shell做重要的特點就是隱藏了操作系統的底層細節,故對於工程師來說這是首選的維護系統的工具。

  其實大部分時候工程師都是在shell環境下管理進程,包括上篇文章中談到的查看進程信息、把後台進程調到前台等等。故在本機上殺死進程也大部分是在shel環境下進行。為此系統工程師用的更多的可能還是利用kill命令來殺死shell子進程。

Copyright © Linux教程網 All Rights Reserved