歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 查看FreeBSD的進程

查看FreeBSD的進程

日期:2017/2/28 11:08:21   编辑:關於Unix


FreeBSD是一個多任務的操作系統,也就是說同時可以執行多個程序。一個執行中的程序就是進程。
每個進程都有一個由系統臨時分配的唯一標識,稱為進程ID(可從1分配到99999),或PID。絕大多數的進程都有一個父進程,即用來啟動該進程的進程。但是,在系統中有一個叫做init的進程,其PID始終為1,該進程在FreeBSD啟動時由內核自動啟動。
例如,用戶在shell中執行指令ls,則ls對應的進程就是shell的子進程,shell是ls的父進程。
在 FreeBSD中,可以使用ps和top兩個指令來察看當前系統中進程的狀態。其中,ps會顯示當前運行的擁有控制終端的進程的狀態,包括PID、運行其的終端、狀態、占用的CPU時間和啟動其的命令等。ps常用的參數包括:a顯示所有運行的進程,u顯示進程所屬的用戶和占用的內存,x顯示出後台進程,ww顯示完整的命令行。
附:在進程中,有一部分是有終端的,需要和用戶進行交互來完成其功能。而另一部分是不需要和用戶進行交互的,稱為守護進程deamon(通常在名稱後加上d表示)。
而 top則顯示所有的運行進程,包括PID、運行該進程的用戶、運行的線程數、優先級、最大內存需求、當前占用內存、進程狀態、占用CPU時間和百分比,以及運行該進程的命令等。並且,該進程會默認每2秒刷新一次狀態,該參數可以用選項s修改。而在該命令的開始部分,則顯示當前總進程數、進程狀態統計、 CPU狀態、內存信息和交換分區的信息等。
在進程間進行通訊可以采用信號的機制。不同的信號根據不同的數字編號有著不同的含義,其中一些有特殊含義,另一些則可被應用程序進行解釋。通常,用戶只能給自己擁有的進程發送信息,而給其他人發送的信息則可能被kill拒絕。但root可以將各種信號發送給每個進程。
在某些情況下,FreeBSD可以向應用程序發送信號,例如段式違規信號(SIGSEGV)和鬧鐘信號(SIGALRM)等。可用來終結進程的信號有SIGTERM和SIGKILL,前者可以被進程自行決定是否終結,而接收到後者的進程則必須立刻被終結。
在FreeBSD中可以使用/bin/kill指令來發送信號,其語法是:kill -s 信號 PID
其中常用的信號包括HUP、INT、QUIT、ABRT、KILL、ALRM、TERM等。
再來看看shell。shell就是命令行界面,其主要功能是從輸入取得命令然後去執行之。FreeBSD內含了若干shell,如sh、tcsh等,可以自行選擇使用何種shell(默認為csh)。shell的一大特點是能夠自動補齊文件名(輸入命令或文件名前幾個字母後按tab鍵即可,若不能自動不全則發出響鈴)。
shell的另一特點是利用環境變量運行,主要包括USER(當前用戶名)、PATH(默認路徑名)、 DISPLAY(X11顯示器的網絡名稱)、SHELL(當前使用的shell名)、TERM(用戶終端的名字)、TERMCAP(各種終端功能所用終端分離編碼的基本數據項目)、OSTYPE(操作系統類型)、MACHTYPE(CPU體系結構)、EDITOR(首選的文本編輯器)、PAGER(首選的文本頁面調度程序)和MANPATH(聯機手冊路徑)等。在csh下設置變量的指令為:setenv 變量名 值
顯示環境變量值的指令為:echo $變量名
Copyright © Linux教程網 All Rights Reserved