天天看點

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

     程式是儲存在外部存儲媒體(如硬碟)中的可執行機器代碼和資料的靜态集合,而程序是在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 指令

    # crontab  -r  -u  ysf        

本文轉自 楊書凡 51CTO部落格,原文連結:http://blog.51cto.com/yangshufan/1950081,如需轉載請自行聯系原作者

繼續閱讀