歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux - 常用進程操作命令

1.  進程監控命令(ps):
  要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。
  ps命令存在很多的命令行選項和參數,然而我們最為常用只有兩種形式,這裡先給出與它們相關的選項和參數的含義:
選項    說明
a    顯示終端上的所有進程,包括其他用戶的進程。
u    以用戶為主的格式來顯示程序狀況。
x    顯示所有程序,不以終端來區分。
-e    顯示所有進程。
o    其後指定要輸出的列,如user,pid等,多個列之間用逗號分隔。
-p    後面跟著一組pid的列表,用逗號分隔,該命令將只是輸出這些pid的相關數據。

  /> ps aux

  root        1  0.0  0.1  2828  1400 ?        Ss  09:51  0:02 /sbin/init
  root        2  0.0  0.0      0          0 ?        S    09:51  0:00 [kthreadd]
  root        3  0.0  0.0      0          0 ?        S    09:51  0:00 [migration/0]
  ... ... 
  /> ps -eo user,pid,%cpu,%mem,start,time,command | head -n 4
  USER      PID %CPU %MEM  STARTED    TIME        COMMAND
  root        1        0.0    0.1  09:51:08    00:00:02  /sbin/init
  root        2        0.0    0.0  09:51:08    00:00:00  [kthreadd]
  root        3        0.0    0.0  09:51:08    00:00:00  [migration/0]
  這裡需要說明的是,ps中存在很多和進程性能相關的參數,它們均以輸出表格中的列的方式顯示出來,在這裡我們只是給出了非常常用的幾個參數,至於更多參數,我們則需要根據自己應用的實際情況去看ps的man手冊。
  #以完整的格式顯示pid為1(init)的進程的相關數據
  /> ps -fp 1
  UID        PID  PPID  C STIME TTY          TIME  CMD
  root        1        0  0 05:16  ?        00:00:03 /sbin/init
 
  2.  改變進程優先級的命令(nice和renice):
  該Shell命令最常用的使用方式為:nice [-n <優先等級>][執行指令],其中優先等級的范圍從-20-19,其中-20最高,19最低,只有系統管理者可以設置負數的等級。
  #後台執行sleep 100秒,同時在啟動時將其nice值置為19
  /> nice -n 19 sleep 100 &
  [1] 4661
  #後台執行sleep 100秒,同時在啟動時將其nice值置為-19
  /> nice -n -19 sleep 100 &
  [2] 4664
  #關注ps -l輸出中用黃色高亮的兩行,它們的NI值和我們執行是設置的值一致。
  /> ps -l
  F S  UID  PID  PPID  C PRI  NI  ADDR  SZ    WCHAN  TTY      TIME        CMD
  4 S    0  2833  2829  0  80  0    -      1739    -        pts/2    00:00:00  bash
  0 S    0  4661  2833  0  99  19    -      1066    -        pts/2    00:00:00  sleep
  4 S    0  4664  2833  0  61 -19    -      1066    -        pts/2    00:00:00  sleep
  4 R    0  4665  2833  1  80  0    -      1231    -        pts/2    00:00:00  ps
 
  renice命令主要用於為已經執行的進程重新設定nice值,該命令包含以下幾個常用選項:
選項    說明
-g    使用程序群組名稱,修改所有隸屬於該程序群組的程序的優先權。
-p    改變該程序的優先權等級,此參數為預設值。
-u    指定用戶名稱,修改所有隸屬於該用戶的程序的優先權。

  #切換到stephen用戶下執行一個後台進程,這裡sleep進程將在後台睡眠1000秒。
  /> su stephen
  /> sleep 1000& 
  [1] 4812
  /> exit  #退回到切換前的root用戶
  #查看已經啟動的後台sleep進程,其ni值為0,宿主用戶為stephen
  /> ps -eo user,pid,ni,command | grep stephen
  stephen  4812  0 sleep 1000
  root        4821    0 grep  stephen
  #以指定用戶的方式修改該用戶下所有進程的nice值
  /> renice -n 5 -u stephen
  500: old priority 0, new priority 5
  #從再次執行ps的輸出結果可以看出,該sleep後台進程的nice值已經調成了5
  /> ps -eo user,pid,ni,command | grep stephen
  stephen  4812  5 sleep 1000
  root        4826  0 grep  stephen
  #以指定進程pid的方式修改該進程的nice值
  /> renice -n 10 -p 4812
  4812: old priority 5, new priority 10
  #再次執行ps,該sleep後台進程的nice值已經從5變成了10
  /> ps -eo user,pid,ni,command | grep stephen
  stephen  4812  10 sleep 1000
  root        4829  0 grep  stephen

 

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-01/111987p2.htm

Copyright © Linux教程網 All Rights Reserved