linux進程和計劃任務

內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、 安全功能等

進程管理:

    系統優先級:數字越小,優先級越高
    實時優先級: 99-0,值最大優先級最高
    nice值:-20 到19 ,對應系統優先級100-139或99

Linux 內核:搶占式多任務
          進程類型:
                     守護進程: daemon, 在系統引導過程中啟動的進程,和終端無關進程
                     前臺進程:跟終端相關,通過終端啟動的進程
                     注意:兩者可相互轉化
          進程狀態:
                  運行態:running
                  就緒態:ready
                  睡眠態:
                  可中斷:interruptable
                 不可中斷:uninterruptable
                 停止態:stopped, 暫停于內存,但不會被調度,除非手動啟動
                 僵死態:zombie,結束進程,父進程結束前,子進程不關閉

進程和線程的區別:

      一個進程可以有多個線程,一個CPU只能運行一個進程,

      線程可以共享資源,包括網絡資源,內存資源

進程管理工具:
          pstree  -p  :  查看進程樹    -p   查看pid
          ps            :  查看終端信息
             默認顯示當前終端中的進程
                ? a 選項包括所有終端中的進程
                ? x 選項包括不鏈接終端的進程
                ? u 選項顯示進程所有者的信息
                ? f 選項顯示進程的父進程
                ? o 屬性…  選項顯示定制的信息
                        pid 、comm 、%cpu 、%mem 、state 、tty 、euser 、ruser
          pidof  command      : 查看運行命令的pid
          stat:進程狀態 
               R            S         D           T          Z          L       N     < 
                     可中斷休眠   停止             僵尸進程    多線程         高優先級
                            
        常用組合:-ef
                  -e:  顯示所有進程
                  -f:  顯示完整格式程序信息
       常用組合:-eFH
                  -F:  顯示更完整格式的進程信息
                  -H:  以進程層級格式顯示進程相關信息

nice命令:
       nice 10 pid
       renice -n 10 pid      調整進程優先級
uptime :  顯示當前時間,和系統平均負載 

top命令:
       -d #   :指定刷新時間間隔,默認為3秒
       -b     :以批次方式 (就是一次顯示一個頁面)
       -n #   :顯示多少批次(比如顯示3次頁面就退出的意思)
        排序:
P :以占據的CPU 百分比,%CPU
M :占據內存百分比,%MEM
T :累積占據CPU 時長,TIME+
       首部信息顯示:
uptime 信息:      l 命令
tasks 及cpu 信息: t 命令
cpu 分別顯示:     1 ( 數字)
memory 信息:      m 命令
退出命令:         q
修改刷新時間間隔: s
終止指定進程:     k
保存文件:         W    
top欄位信息簡介;進程查看對比就方便記住了

htop 命令:需從Fedora-EPEL 源安裝 yum -y install htop

vmstat: 虛擬內存信息

    vmstat 2 5   :  每2秒顯示一次,顯示五次結束

               iostat: 統計CPU 和設備IO 信息

                  iostat 2  5 : 

系統監測工具:

      glance: 

             服務器模式:
                    glances -s -B IPADDR
                                    IPADDR: 指明監聽的本機哪個地址

             客戶端模式:
                   glances -c IPADDR
                                  IPADDR: 要連入的服務器端地址

       dstat:, 代替vmstat,iostat;功能很強大
-c:  顯示cpu 相關信息
-d:  顯示disk 相關信息
-g :顯示page 相關統計數據
-m:  顯示memory 相關統計數據
-n:  顯示network 相關統計數據
-p:  顯示process 相關統計數據
-r:  顯示io 請求相關的統計數據
-s:  顯示swapped相關的統計數據

kill 命令:
向進程發送控制信號;以實現對進程管理,每個信號對應一個數字,信號名稱以SIG開頭(可省略)不區分大小寫
       顯示當前系統可用信號: kill –l,trap -l
常用信號:man 7 signal
1) SIGHUP:  無須關閉進程而讓其重讀配置文件
2) SIGINT:  中止正在運行的進程;相當于Ctrl+c
3) SIGQUIT: 相當于ctrl+\
9) SIGKILL:  強制殺死正在運行的進程
15) SIGTERM :終止正在運行的進程
18) SIGCONT :繼續運行
19) SIGSTOP :后臺休眠
指定信號的方法:
(1)  信號的數字標識:1, 2, 9
(2)  信號的簡寫名稱:HUP

例如:kill -9 PID        kill -1  pid  

作業管理:
       Linux 的作業控制
前臺作業:通過終端啟動,且啟動后一直占據終端;
后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端)
?  如何讓作業運行于后臺?
(1)  運行中的作業: Ctrl+z     (此操作會使進程休眠)
(2)  尚未啟動的作業:# COMMAND &  (此操作后臺運行)
?  后臺作業雖然被送往后臺運行,但其依然與終端相關;退出終端,將關閉
后臺作業。如果希望送往后臺后,剝離與終端的關系
              # nohup COMMAND & #screen;COMMAND
?  查看所有作業:
              # jobs
?  作業控制:  后臺作業都會有一個編號,直接指定編號也行
          # fg [[%]JOB_NUM] :把指定的后臺作業調回前臺
          # bg [[%]JOB_NUM] :讓送往后臺的作業在后臺繼續運行
          # kill [%JOB_NUM] :終止指定的作業
并行運行:
      方法1      (寫三個腳本,放到一個腳本運行,每個腳本后用&)
         vi all.sh
             f1.sh&
             f2.sh&
             f3.sh&
?    方法2
        (f1.sh&);(f2.sh&);(f3.sh&)
?    方法3

        { f1.sh& f2.sh& f3.sh& }

任務計劃:

    Linux 任務計劃、周期性任務執行
?  未來的某時間點執行一次任務
             at
             batch :系統 自行選擇空閑時間去執行此處指定的任務
?  周期性運行某任務
             cron

at: 依賴軟件包,考試時候類似的包都會挖坑,需要手動啟動服務,否則做完不生效
    rpm -q at    :查詢軟件包名稱
    rpm -ql at   : 查詢安裝包路徑        
       service atd status   :查看當前服務是否啟動    start和stop,臨時啟動
       chkconfig  –list atd :查看是否開機啟動的
       chkconfif –level 5 atd on/off   :在模式5設置開機啟動或者關閉 –help 查看幫助
    centos7 :
       systemctl   is-enabled atd  :查看atd下次啟動是否自動啟動
       systenctl   enabled   atd   :  下次啟動自動啟動
       systenctl   disable   atd   :  下次啟動不自動啟動

at time   :命令格式,后面跟時間,ctrl+d  結束      
     at -l  :  查看計劃任務
     at -d  #: 刪除指定的計劃任務編號
     at -c #:  查看任務計劃內容, 目錄在 /var/spool/at/  
     at -f *.text  time:   把多個任務計劃寫到文件調用
     at -m  : 當任務 被完成之后,將給用戶發送郵件,即使沒有標準輸出
     計劃任務結果以郵件形式發送,建議使用重定向解決 >/dev/null
     同時間的計劃任務支持并行運行。

at.deny 和at.allow       /et/at.deny     默認/etc/at.allow 不存在
      at.deny 黑名單,要生效的前提,at.allow不存在,白名單的優先級最高
      at.allow 白名單,只有白名單的用戶才可能執行at,默認不存在,如果存在,at.deny失效,優先級高
如果都不存在,只有root可以執行at
      如果 兩個文件都不存在有 ,只有 root 行 可以執行 at  命令

周期性任務計劃:
     cron :  和at一樣,需要先查詢清楚路徑和是否啟動服務,或者開機啟動
     rpm -qa cron* :  可以用通配符搜索;
     確保crond 守護處于運行狀態:
          CentOS 7:
                systemctl status crond
          CentOS 6:
                service crond status
?  計劃周期性執行的任務提交給crond ,到指定時間會自動運行
  系統cron 任務:系統維護作業
            /etc/crontab
  用戶cron 任務:
                crontab 命令
?         日志:/var/log/cron
   周期性計劃對符號敏感,比如%,所以建議調用腳本,否則需要加單引號;

   vim /etc/crontab 
   時間表示法:
? (1)  特定值
給定時間點有效取值范圍內的值
? (2)  *
給定時間點上有效取值范圍內的所有值
表示 “每…”
? (3)  離散取值
#,#,#
? (4)  連續取值
#-#
? (5)  在指定時間范圍上, 定義步長
/#: #即為步長
?  示例:每3小時echo 命令
0 */3 * * * centos /bin/echo “howdy!”
一般來說,幾月幾號和周幾一般不同時出現,如果都出現,表示或者的關系,都會執行

   @reboot  Run once after reboot      :表示下次開機運行
? @yearly 0 0 1 1 *
? @annually 0 0 1 1 *
? @monthly 0 0 1 * *
? @weekly 0 0 * * 0
? @daily 0 0 * * *
? @hourly 0 * * * *
  
   系統的計劃任務:
/etc/crontab
/etc/cron.d/ 配置文件
/etc/cron.hourly/  腳本
/etc/cron.daily/   腳本
/etc/cron.weekly/  腳本
/etc/cron.monthly/ 腳本

原創文章,作者:shewei,如若轉載,請注明出處:http://www.www58058.com/71581

(0)
sheweishewei
上一篇 2017-03-22 22:59
下一篇 2017-03-24 00:17

相關推薦

  • Linux硬鏈接和軟鏈接的區別

    一.Linux鏈接概念 Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。 【硬連接】 硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個…

    Linux干貨 2016-10-29
  • 08RPM的簡單實用

    rpm命令,安裝(-i,–install)、卸載、升級(-U,-F)、查詢(-q,–query)、校驗(-V,–verify)、數據庫維護 安裝:rpm {-i|–install} [install-options] PACKAGE_FILE… v:可視化 h:以#顯示進度 rpm -ivh package_f…

    Linux干貨 2016-11-03
  • 條件選擇if 條件判斷case 文件查找 find locate 以及壓縮和解壓縮工具

    1 shell腳本編程之 條件選擇if 條件判斷case  2 文件查找 find locate 以及壓縮和解壓縮工具 過程式編程語言:  順序執行  選擇執行  循環執行 條件選擇之 if語句 選擇執行: ?  注意:if語句可嵌套 ?   單分支 if 判斷條件:then 條件為真的分…

    Linux干貨 2016-08-15
  • grep是個什么鬼

    正則表達式   一個正則表達式是一個描述了一個字符串集合的模式。正則表達式的構造類似于算術表達式,使用各種各樣的操作符來將更小的表達式連在一起。 Grep能理解兩種不同版本的正則表達式語法:“basic”和“extended”。在GNU grep中,兩種語法可以實現的功能是沒有區別的。在其他實現中,基本(basic)正則表達式表達能力要弱一點。下面…

    Linux干貨 2017-04-17
  • week4

    一,復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒 有任何訪問權限; cp -r /etc/skel/ /home/tuser1 chmod -R go= /home/tuser1/ 二,編輯/etc/group文件,添加組hado…

    Linux干貨 2016-11-18
  • 0811linux基礎小記(shell編程基礎)

    1.編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 #!/bin/bash echo "hostname: `hostname`" echo "OS VERSION: `cat /etc/issue`" e…

    Linux干貨 2016-08-15
欧美性久久久久