日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux基础知识--进程管理与计划任务

發(fā)布時(shí)間:2024/4/17 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux基础知识--进程管理与计划任务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Linux啟動(dòng)流程:

  

  開機(jī)自檢BIOS是檢測(cè)硬件以及各個(gè)設(shè)備是否準(zhǔn)備好

  MBR引導(dǎo)是看系統(tǒng)放在哪個(gè)位置,進(jìn)行加載;引導(dǎo)分區(qū),里面有多個(gè)系統(tǒng),看需要啟動(dòng)哪個(gè)系統(tǒng)

  GRUP菜單,進(jìn)行一些選項(xiàng),比如說看啟動(dòng)哪個(gè)系統(tǒng)

?

  INIT進(jìn)程:

    由Linux內(nèi)核加載運(yùn)行/sbin/init程序

    是系統(tǒng)的第一個(gè)進(jìn)程,是所有進(jìn)程的祖宗,PID(進(jìn)程標(biāo)記)號(hào)永遠(yuǎn)為1

    配置文件/etc/inittab

?

  Linux系統(tǒng)運(yùn)行級(jí)別(runlevels)

    有7個(gè)級(jí)別,

    0關(guān)機(jī)

    1單用戶模式

    2字符界面的多用戶界面(不支持網(wǎng)絡(luò))

    3字符界面的完整多用戶界面

    4未分配使用

    5圖形界面的多用戶界面

    6重新啟動(dòng)

  

    runlevel命令可以查看系統(tǒng)的運(yùn)行級(jí)別,結(jié)果為兩個(gè)數(shù)字,前者為切換前的系統(tǒng)級(jí)別,后者為當(dāng)前級(jí)別

?

  查看系統(tǒng)服務(wù)的啟動(dòng)狀態(tài):

  格式:chkconfig --list

     chkconfig --list 服務(wù)名稱  可以查看每個(gè)級(jí)別下的服務(wù)啟動(dòng)狀態(tài)

  服務(wù)腳本位置:/etc/init.d? ?/etc/rc.d/init.d

  

  設(shè)置系統(tǒng)服務(wù)的啟動(dòng)狀態(tài)

  格式:chkconfig --level 級(jí)別列表 服務(wù)名 on|off

      可以設(shè)置在哪些級(jí)別中服務(wù)的啟動(dòng)狀態(tài)

?

進(jìn)程管理:

  程序和進(jìn)程:程序是保存在硬盤、光盤等介質(zhì)中的可執(zhí)行代碼和數(shù)據(jù),是靜態(tài)保存的代碼;進(jìn)程是在CPU及內(nèi)存中運(yùn)行的代碼,是動(dòng)態(tài)執(zhí)行的,每個(gè)進(jìn)程都可創(chuàng)建一個(gè)或多個(gè)子進(jìn)程(父、子進(jìn)程)

  ps統(tǒng)計(jì)靜態(tài)進(jìn)程的信息:

  ps aux

  ps -elf

  a顯示當(dāng)前終端下的所有進(jìn)程信息

  u使用以用戶為主的格式輸出進(jìn)程信息

  x顯示當(dāng)前用戶在所有終端下的進(jìn)程信息

  -e顯示系統(tǒng)內(nèi)的所有進(jìn)程信息

  -l使用長(zhǎng)格式顯示進(jìn)程信息

  -f使用完整格式顯示進(jìn)程信息

  

  top查看動(dòng)態(tài)的進(jìn)程排名信息,q退出查看

  

  pgrep根據(jù)特定的條件查詢進(jìn)程PID信息

  -l列出進(jìn)程名稱

  -U根據(jù)進(jìn)程所屬的用戶名進(jìn)行查找

  -t根據(jù)進(jìn)程所在終端進(jìn)行查找

  pgrep [選項(xiàng)]... 進(jìn)程名

[root@localhost ~]# pgrep "init" 1 [root@localhost ~]# pgrep -l "init" 1 init [root@localhost ~]# pgrep -l "log" 6771 syslogd 6774 klogd [root@localhost ~]# pgrep -l -U root "log" 6771 syslogd 6774 klogd

  init的進(jìn)程PID為1,進(jìn)程名是init,包含log進(jìn)程的進(jìn)程PID有6771、6774

  

  pstree以樹形結(jié)構(gòu)顯示進(jìn)程之間的信息

  pstree -aup

    -u列出進(jìn)程對(duì)應(yīng)的用戶名

    -a列出進(jìn)程對(duì)應(yīng)的完整命令

    -p列出進(jìn)程的ID號(hào)

  

  進(jìn)程的不同啟動(dòng)方式

    手動(dòng)啟動(dòng)

      前臺(tái)啟動(dòng):用戶輸入命令,直接執(zhí)行程序

      后臺(tái)啟動(dòng):在命令行尾加上“&”符號(hào)

    調(diào)度啟動(dòng):

      使用at命令,設(shè)置在某個(gè)時(shí)間執(zhí)行一次任務(wù)

      使用crontab命令,設(shè)置固定周期重復(fù)執(zhí)行預(yù)先計(jì)劃好的任務(wù)

  

  進(jìn)程前后臺(tái)調(diào)度

    Ctrl+Z將當(dāng)前進(jìn)程掛起,即調(diào)入后臺(tái)

    jobs命令,查看處于后臺(tái)的任務(wù)列表

    fg命令,將處于后臺(tái)的進(jìn)程恢復(fù)至前臺(tái),需指定任務(wù)序號(hào)

    Ctrl+C終止正在執(zhí)行的命令 

    kill用于終止指定PID的進(jìn)程

    killall用于終止指定名稱的所有進(jìn)程,-9選項(xiàng)用于強(qiáng)制終止

    pkill根據(jù)特定條件終止相應(yīng)進(jìn)程

      -U根據(jù)進(jìn)程所屬的用戶名終止相應(yīng)進(jìn)程

      -t根據(jù)進(jìn)程所在終端終止相應(yīng)進(jìn)程

[root@localhost ~]# ping 192.168.xx.1 PING 192.168.xx.1 (192.168.xx.1) 56(84) bytes of data.[1]+ Stopped ping 192.168.xx.1 [root@localhost ~]# jobs [1]+ Stopped ping 192.168.xx.1 [root@localhost ~]# fg 1 ping 192.168.xx.1--- 192.168.xx.1 ping statistics --- 7 packets transmitted, 0 received, 100% packet loss, time 15995ms[root@localhost ~]# jobs

    Linux中ping物理機(jī)的IP,進(jìn)行會(huì)一直執(zhí)行,Ctrl+Z將當(dāng)前進(jìn)程調(diào)入到后臺(tái),jobs查看后臺(tái)進(jìn)程,任務(wù)序號(hào)為1,fg 1將后臺(tái)進(jìn)程調(diào)入到前臺(tái),Ctrl+C終止當(dāng)前進(jìn)程

    

計(jì)劃任務(wù)管理

  一次性任務(wù),使用at命令,指定日期、時(shí)間點(diǎn)執(zhí)行一些預(yù)定的命令操作

    服務(wù)腳本名稱:/etc/init.d/atd,在執(zhí)行這個(gè)命令之前首先要保證atd服務(wù)啟動(dòng)

    格式:at [HH:MM] [yyyy-mm-dd]

    啟動(dòng)服務(wù):service atd start,或者/etc/init.d/atd start

    查看服務(wù)啟動(dòng)狀態(tài):service atd status

    Ctrl+D提交任務(wù)

    atq查詢當(dāng)前設(shè)置的at任務(wù)列表

    atrm刪除指定任務(wù)編號(hào)的at任務(wù)

      atrm 編號(hào)

[root@localhost ~]# cd /home [root@localhost home]# ls audispd.conf file1.tar.gz file3 test test2 file1.tar file2.tar.gz file3.tar.gz test1 test.tar.bz2 [root@localhost home]# date Sat Feb 16 20:00:36 CST 2019 [root@localhost home]# at 20:02 at> touch file04 at> <EOT> job 1 at 2019-02-16 20:02 [root@localhost home]# date Sat Feb 16 20:01:19 CST 2019 [root@localhost home]# date Sat Feb 16 20:02:34 CST 2019 [root@localhost home]# ls audispd.conf file1.tar file2.tar.gz file3.tar.gz test1 test.tar.bz2 file04 file1.tar.gz file3 test test2

    在home目錄下,開始沒有file04,現(xiàn)在想要在當(dāng)天的20:02時(shí)刻創(chuàng)建file04,。因此首先獲取當(dāng)前時(shí)間,制定當(dāng)前時(shí)間之后的某個(gè)時(shí)間點(diǎn)創(chuàng)建file04的任務(wù)計(jì)劃,按Ctrl+D提交計(jì)劃,時(shí)間到了,發(fā)現(xiàn)任務(wù)執(zhí)行完畢,file04創(chuàng)建。

?

  周期性任務(wù)crontab,按照預(yù)先設(shè)置的時(shí)間周期重復(fù)執(zhí)行任務(wù)

    服務(wù)腳本名稱:/etc/init.d/crond,設(shè)置計(jì)劃之前保證服務(wù)啟動(dòng)

    全局配置文件,位于/etc/crontab

      系統(tǒng)默認(rèn)的設(shè)置位于/etc/cron.*/

      用戶定義設(shè)置,位于文件/var/spool/cron/用戶名

    crontab -e [-u 用戶名]  編輯計(jì)劃任務(wù),不指定用戶默認(rèn)當(dāng)前用戶

    crontab -l [-u 用戶名]  查看計(jì)劃任務(wù),不指定用戶默認(rèn)當(dāng)前用戶

    crontab -r [-u 用戶名]  刪除計(jì)劃任務(wù),不指定用戶默認(rèn)當(dāng)前用戶,只能刪除當(dāng)前用戶的周期性任務(wù)計(jì)劃

    只有root用戶才能為其他用戶制定周期性任務(wù)計(jì)劃,其他用戶只能管理自己的周期性任務(wù)計(jì)劃

    

    任務(wù)配置格式:

      分鐘(0-59)? 小時(shí)(0-23)? 日期? ? 月份? ? 星期 (0-7)? ?命令(要執(zhí)行的命令或程序腳本)

      時(shí)間數(shù)值的特殊表示方法:

        *表示該范圍內(nèi)的任意時(shí)間

        ,表示間隔多個(gè)不連續(xù)的時(shí)間點(diǎn)

        -表示一個(gè)連續(xù)的時(shí)間范圍

        /指定間隔的時(shí)間頻率

      示例:

        0 17 * *? 1-5? ? ? ?每天周一到周五的17點(diǎn)整

        30 8 * * 1,3,5? ? ?周一周三周五的8:30執(zhí)行

        0 9-22/2 * * 7  星期天的9點(diǎn)到22點(diǎn)每隔兩小時(shí)執(zhí)行一次

        

     案例:

      每天早上7:50自動(dòng)開啟sshd服務(wù),22點(diǎn)50時(shí)關(guān)閉

      每隔5天清空一次FTP服務(wù)器公共目錄/var/ftp/pub

      每周六的7:30時(shí),重新啟動(dòng)httpd服務(wù)

     ??每周一、三、五的17:30時(shí),打包并壓縮/etc/httpd目錄  

[root@localhost home]# cd /var/spool/cron [root@localhost cron]# ls [root@localhost cron]# crontab -e -u root

    進(jìn)入/var/spool/cron目錄,開始編輯計(jì)劃任務(wù)

50 7 * * * /sbin/service sshd start 50 22 * * * /sbin/service sshd stop 0 * */5 * * /bin/rm -rf /var/ftp/pub/* 30 7 * * 6 /sbin/service httpd restart 30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -- INSERT --

    相應(yīng)的服務(wù)或者指令要寫出絕對(duì)路徑,查看當(dāng)前用戶的任務(wù)計(jì)劃

[root@localhost cron]# crontab -l 50 7 * * * /sbin/service sshd start 50 22 * * * /sbin/service sshd stop 0 * */5 * * /bin/rm -rf /var/ftp/pub/* 30 7 * * 6 /sbin/service httpd restart 30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd

  刪除之后,發(fā)現(xiàn)沒有任何任務(wù)計(jì)劃

[root@localhost cron]# crontab -r [root@localhost cron]# crontab -l no crontab for root

?

  總結(jié):

    INIT進(jìn)程,系統(tǒng)的第一個(gè)進(jìn)程,PID為1,存放在/etc/inittab

    runlevels,Linux系統(tǒng)的運(yùn)行級(jí)別,0-7,7個(gè)級(jí)別,4未分配;runlevel命令查看最近一次修改之前的運(yùn)行級(jí)別和當(dāng)前運(yùn)行級(jí)別

    chkconfig --list

    chkconfig?--level 級(jí)別列表 服務(wù)名 on|off

    ps統(tǒng)計(jì)靜態(tài)進(jìn)程信息,ps aux

    top查看動(dòng)態(tài)進(jìn)程排名信息

    pgrep根據(jù)條件查詢進(jìn)程信息

    pstree以樹形結(jié)構(gòu)顯示進(jìn)程之間的關(guān)系,pstree -aup

    Ctrl+Z、jobs、fg 任務(wù)序列號(hào)、Ctrl+C、kill、killall、killall -9

    at一次性任務(wù),/etc/init.d/atd 、atq、atrm

    crontab周期性任務(wù)計(jì)劃,/etc/init.d/crond、/var/spool/cron/用戶名、crontab -e、crontab -l、crontab -r

    

   

  

  

轉(zhuǎn)載于:https://www.cnblogs.com/bigbigtong/p/10381105.html

總結(jié)

以上是生活随笔為你收集整理的Linux基础知识--进程管理与计划任务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。