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
下一篇 2017-03-24

相關推薦

  • 安裝CentOS 7.2操作系統

        工具:     VMware Workstation     http://www.vmware.com/cn/products/workstation/workstation-evaluation.html  &nbsp…

    Linux干貨 2016-08-04
  • CentOS6.7上編譯安裝php

    環境:CentOS6.7,minimal安裝。 前提條件:安裝了編譯環境,安裝了Apache/Nginx,安裝了MySQL/MariaDB。具體安裝見:http://www.www58058.com/16583    http://www.www58058.com/17497  1、解決依賴關系: 請配置好yum源(系統安裝源及…

    Linux干貨 2016-06-03
  • btrfs 文件系統

    簡介   Btrfs((B-tree,ButterFS ,Better FS通常念成Butter FS),由Oracle于2007年宣布并進行中的COW(copy-on-write式)文件系統。繼ext3/4文件系統之后linux又有了比較強大的文件系統(btrfs文件系統),btrfs文件系統不僅可以將ex…

    Linux干貨 2016-02-19
  • sed工具實踐解析

    此次博文介紹一下文本處理三劍客中的sed工具(點擊查看grep工具http://www.www58058.com/83512) 介紹sed: sed是非交互式的編輯器。它不會修改文件,除非使用shell重定向來保存結果。默認情況下,所有的輸出行都被打印到屏幕上。 運行過程: sed編輯器逐行處理文件,并將結果發送到屏幕。具體過程如下:首先sed把當前正在處理…

    Linux干貨 2017-08-26
  • read,locate ,find 的總結及相關聯系

    read 變量名 read 變量名1 [變量名2] < 文件名不支持管道read 變量名1 [變量名2] <<< “值1 [值2] …”使用read來把輸入值分配給一個或者多個shell變量     -p 指定要顯示的提示     # read -p…

    Linux干貨 2017-08-12
  • linux常用網絡配置

    網卡名稱:  網絡接口識別并命名相關的udev配置文件:    /etc/udev/rules.d/70-persistent-net.rules  卸載網卡驅動:    modprobe  -r e1000  裝載網卡驅動:    modprobe &nbs…

    Linux干貨 2016-09-06
欧美性久久久久