您好,登錄后才能下訂單哦!
前言: 程序是保存在外部存儲介質(如硬盤)中的可執行機器代碼和數據的靜態集合,而進程是在CPU及內存中處于動態執行狀態的計算機程序。在Linux系統中,每個程序啟動后可以創建一個或多個進程。例如,提供Web服務的httpd程序,當有大量用戶同時訪問Web頁面時,httpd程序可能會創建多個進程來提供服務 。
使用不同的命令工具可以從不同的角度查看進程狀態 。
? ps aux ps -elf
a:顯示當前終端下的所有進程信息
u:以用戶為主的格式輸出進程信息
x:顯示當前用戶在所有終端下的進程信息
-e:顯示系統內的所有進程信息
-l :使用長格式顯示進程信息
-f:使用完整的格式顯示進程信息
第一行列表字段表示的含義:
? USER:啟動該進程的用戶賬號名稱
? PID:該進程的ID號,在當前系統中是唯一的
? TTY:該進程在哪個終端上運行。“?”表未知或不需要終端
? STAT:顯示了進程當前的狀態,如S(休眠)、R(運行)、Z(僵死)、<(高優先級)、N(低優先級)、s(父進程)、+(前臺進程)。對處于僵死狀態的進程應予以手動終止。
? START:啟動該進程的時間
? TIME:該進程占用CPU時間
? COMMAND:啟動該進程的命令的名稱
? %CPU:CPU占用的百分比
? %MEM:內存占用的百分比
? VSZ:占用虛擬內存(swap空間)的大小
? RSS:占用常駐內存(物理內存)的大小
在系統中運行的進程數量較多,需要查詢某一個進程信息時,可以結合管道操作和grep命令過濾。 如:過濾出包含“bash”的進程信息
? top命令在當前終端以全屏交互的界面顯示進程排名,及時跟蹤包括CPU、內存等系統資源占用情況,默認情況下每三秒刷新一次。作用相當于Windows系統的任務管理器。
? pgrep 是用來查詢特定進程信息的專用工具,使用pgrep 可以根據進程的名稱、運行該進程的用戶、進程所在的終端等多種屬性查詢特定進程的PID號。
結合“-l” 可同時輸出對應的進程名。例如: 查詢進程名中包含“log” 的進程及PID號
? pstree命令可以輸出linux系統中各進程的樹形結構,更加直觀地判斷各進程之間的相互關系(父、子進程)。
? pstree -aup
a : 列出完整的命令信息
u:列出對應的用戶名
p: 同時列出對應的PID號
查看指定用戶的進程樹結構,只要指定用戶名作為參數即可。前提這個用戶是可以被登錄的
在Linux中,可以由用戶手工啟動或按預定計劃調度啟動新的進程。
? 由用戶手工輸入命令或可執行程序的路徑,可以至少啟動一個進程。可分為前臺啟動和后臺啟動。進程在前臺運行時必須等到該進程執行結束并退出才能繼續輸入其他命令,大多數命令都是在前臺啟動運行。 啟動后臺進程需要使用“&”操作符,放在執行命令的最后,進程啟動會直接放入后臺運行,不占用前臺命令操作界面。
? 例如:把目錄/mnt/packages 復制到/opt/ 下,由于需要復制的數據較多,因此可結合“&” 符號將復制操作放到后臺運行,以便可以繼續執行其他命令操作。
? 進程的調度啟動可以通過at、crontab 命令進行設置,at 命令用于設置一次性計劃任務,crontab 用于設置周期性運行的計劃任務。
at 一次性任務設置
? 只在指定的時間點執行一次,前提是對應的系統服務atd必須已經運行。注意:計劃執行任務的時間、日期必須安排在當前系統的時刻之后,否則無法正確設置計劃任務。
刪除第2條at計劃任務:atrm 2
crontab周期性任務設置
? 使用crontab命令設置的計劃任務可以按預設的周期重復執行,大大減輕設置重復性系統管理任務的操作,由軟件包cronie提供crontab工具、系統服務crond和配置文件/etc/crontab。 前提是對應的系統服務crond必須已運行。
首先需要知道配置文件在哪邊
-e:編輯計劃任務列表
-u:指定所管理的計劃任務屬于哪個用戶,默認時針對當前用戶自己,一般只有root用戶有權限使用此選項
-l:列表顯示計劃任務
-r:刪除計劃任務
Crontab計劃任務的配置格式中,五個時間字段依次為分鐘、小時、日期、月份、星期。
1、每一分鐘執行一次myCommand
* * * * * myCommand
2、每小時的第3和第10分鐘執行myCommand
3,10 * * * * myCommand
3、每隔兩天的上午8點到11點的第3和第15分鐘執行
3,15 8-11 */2 * * myCommand
4、每晚的21:30重啟smb
30 21 * * * /etc/init.d/smb restart
5、每天18:00至23:00之間每隔30分鐘重啟smb
0,30 18-23 * * * /etc/init.d/smb restart
6、每一小時重啟smb
* */1 * * * /etc/init.d/smb restart
7、晚上11點到早上7點之間每隔一小時重啟smb
* 23-7/1 * * * /etc/init.d/smb restart
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。