首頁 > 軟體

Linux進程控制和計劃任務管理

2020-06-16 17:09:57

程式是儲存在外部儲存媒介(如硬碟)中的可執行機器程式碼和資料的靜態集合,而進程是在CPU及記憶體中處於動態執行狀態的計算機程式。在Linux中,每個程式啟動後可以建立一個或多個進程。

ps命令  檢視靜態的進程統計資訊
ps        只顯示當前使用者對談中開啟的進程
ps  aux    以簡單列表的形式顯示出進程資訊
ps  -elf  以長格式顯示系統中的進程資訊,包括更豐富的內容

top命令  檢視進程動態資訊
  在當前終端已互動式的介面顯示進程排名,及時跟蹤CPU、記憶體等系統資源佔用的情況,預設每三秒重新整理一次
P鍵:根據CPU占用情況對進程進行排序
M鍵:根據記憶體占用情況對進程進行排序
N鍵:根據啟動時間進行排序
h鍵:獲得top程式的線上幫助資訊
q鍵:退出top程式
k鍵:輸入指定進程PID號,按下Enter鍵,終止對應的進程

pgrep命令    查詢指定進程資訊
  -l  同時顯示PID和對應的進程名
  -U  查詢特定使用者的進程
  -t  查詢在特定終端執行的進程(如tty1)

pstree命令    檢視進程樹形結構,各進程對應的關係
  -aup  檢視當前進程樹,並包括進程對應的PID號、使用者名稱、完整命令資訊
  -ap 使用者名稱引數  只檢視指定使用者的進程樹結構

控制進程
命令+&  在後台執行命令,不占用前台的命令操作介面
Ctrl+Z  將當前進程掛起,調入後台並停止執行
jobs  檢視後台執行的進程任務
  -l  同時顯示該進程對應的PID號
bg+PID號    將後台暫停執行的任務恢復執行,繼續在後台執行
fg+PID號    將後台暫停執行的任務恢復到前台執行
 
終止進程執行
Ctrl+C  強制中斷正在前台執行的某個進程
kill+PID號    終止進程並正常退出
  -9      強制終止某個進程
killall+進程名    終止系統中多個相同名稱的進程,更加方便、效率
  -9    強行終止
pkill命令    可以根據進程的名稱、使用者、終端等屬性終止特定的進程
  -U  終止特定使用者的進程
  -t  終止在特定終端執行的進程(如tty1)


計劃任務管理
  在Linux作業系統中,還可以設定在指定時間,指定日期執行預先計劃好的系統管理任務(如定期備份、定期採集監測資料)
at 一次性任務設定
  組態檔  /etc/init.d/atd
  命令格式: at  時間  日期
  例如:在2017年8月15日的20:00是自動關閉系統
    # at  20:00  2017-8-15               
 at> shutdown  -h  now                   
 at>  設定完後按 Ctrl+D 提交任務         
atq命令  查詢已設定但還未執行的計劃任務
atrm命令  刪除指定編號的 at 任務,刪除後將不會執行


crontab 周期性任務設定
  組態檔  /etc/crontab
  使用者 cron 任務組態檔存放目錄  /var/spool/cron
  命令格式: crontab  -e  編輯計劃任務列表
                      -u  指定管理的計劃任務屬於哪個使用者,預設自己
                      -l  列表顯示任務計劃
                      -r  刪除計劃任務列表
1.編輯計劃任務列表
  執行crontab  -e 後,開啟計劃任務編輯介面
  編輯格式:  分鐘  小時  日期  月份  星期  執行的命令
  * 表示取值範圍中的任意時間
  - 表示一個連續的時間範圍,如“1-3”表示1、2、3
  ,表示一個間隔的不連續範圍,如“1,5”表示1,5
  / 表示指定的間隔頻率,如在小時欄位中的“*/12”表示每個12小時
    例如:按照固定的週期重複執行以下系統管理任務,任務內容如下

  1.每天早上7:50自動開啟sshd服務,22點50時關閉
  2.每隔5天清空一次FTP伺服器公共目錄/var/ftp/pub
  3.每週六的7:30時,重新啟動httpd服務
  4.每週一、三、五的17:30時,打包備份/etc/httpd目錄
  # crontab -e                                                       
    50  7  *  *  *  /sbin/service  sshd  start                     
    50  22  *  *  *  /sbin/service  sshd  stop                     
    0  0  */5  *  *  /bin/rm  -rf  /var/ftp/pub/*                   
    30  7  *  *  6  /sbin/service  httpd  restart                   
    30  17  *  *  1,3,5  /bin/tar  zcf  httpd.tar.gz  /etc/httpd/   

2.檢視任務列表
  crontab  -l  檢視當前使用者的計劃任務列表
        -u  檢視其它使用者的計劃任務
  例如:檢視使用者 ysf 的計劃任務
  # crontab  -l  -u  ysf                                         

3.刪除使用者的計劃任務列表
  當只需刪除某一條計劃任務時,可通過 crontab -e 進行編輯;需要清空某個使用者的所有計劃任務時,可以執行 crontab -r 命令
  例如:檢視使用者 ysf 的計劃任務
    # crontab  -r  -u  ysf     

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-07/145861.htm


IT145.com E-mail:sddin#qq.com