Linux基础知识--进程管理与计划任务
Linux啟動流程:
開機自檢BIOS是檢測硬件以及各個設(shè)備是否準(zhǔn)備好
MBR引導(dǎo)是看系統(tǒng)放在哪個位置,進行加載;引導(dǎo)分區(qū),里面有多個系統(tǒng),看需要啟動哪個系統(tǒng)
GRUP菜單,進行一些選項,比如說看啟動哪個系統(tǒng)
?
INIT進程:
由Linux內(nèi)核加載運行/sbin/init程序
是系統(tǒng)的第一個進程,是所有進程的祖宗,PID(進程標(biāo)記)號永遠為1
配置文件/etc/inittab
?
Linux系統(tǒng)運行級別(runlevels)
有7個級別,
0關(guān)機
1單用戶模式
2字符界面的多用戶界面(不支持網(wǎng)絡(luò))
3字符界面的完整多用戶界面
4未分配使用
5圖形界面的多用戶界面
6重新啟動
runlevel命令可以查看系統(tǒng)的運行級別,結(jié)果為兩個數(shù)字,前者為切換前的系統(tǒng)級別,后者為當(dāng)前級別
?
查看系統(tǒng)服務(wù)的啟動狀態(tài):
格式:chkconfig --list
chkconfig --list 服務(wù)名稱 可以查看每個級別下的服務(wù)啟動狀態(tài)
服務(wù)腳本位置:/etc/init.d? ?/etc/rc.d/init.d
設(shè)置系統(tǒng)服務(wù)的啟動狀態(tài)
格式:chkconfig --level 級別列表 服務(wù)名 on|off
可以設(shè)置在哪些級別中服務(wù)的啟動狀態(tài)
?
進程管理:
程序和進程:程序是保存在硬盤、光盤等介質(zhì)中的可執(zhí)行代碼和數(shù)據(jù),是靜態(tài)保存的代碼;進程是在CPU及內(nèi)存中運行的代碼,是動態(tài)執(zhí)行的,每個進程都可創(chuàng)建一個或多個子進程(父、子進程)
ps統(tǒng)計靜態(tài)進程的信息:
ps aux
ps -elf
a顯示當(dāng)前終端下的所有進程信息
u使用以用戶為主的格式輸出進程信息
x顯示當(dāng)前用戶在所有終端下的進程信息
-e顯示系統(tǒng)內(nèi)的所有進程信息
-l使用長格式顯示進程信息
-f使用完整格式顯示進程信息
top查看動態(tài)的進程排名信息,q退出查看
pgrep根據(jù)特定的條件查詢進程PID信息
-l列出進程名稱
-U根據(jù)進程所屬的用戶名進行查找
-t根據(jù)進程所在終端進行查找
pgrep [選項]... 進程名
[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 klogdinit的進程PID為1,進程名是init,包含log進程的進程PID有6771、6774
pstree以樹形結(jié)構(gòu)顯示進程之間的信息
pstree -aup
-u列出進程對應(yīng)的用戶名
-a列出進程對應(yīng)的完整命令
-p列出進程的ID號
進程的不同啟動方式
手動啟動
前臺啟動:用戶輸入命令,直接執(zhí)行程序
后臺啟動:在命令行尾加上“&”符號
調(diào)度啟動:
使用at命令,設(shè)置在某個時間執(zhí)行一次任務(wù)
使用crontab命令,設(shè)置固定周期重復(fù)執(zhí)行預(yù)先計劃好的任務(wù)
進程前后臺調(diào)度
Ctrl+Z將當(dāng)前進程掛起,即調(diào)入后臺
jobs命令,查看處于后臺的任務(wù)列表
fg命令,將處于后臺的進程恢復(fù)至前臺,需指定任務(wù)序號
Ctrl+C終止正在執(zhí)行的命令
kill用于終止指定PID的進程
killall用于終止指定名稱的所有進程,-9選項用于強制終止
pkill根據(jù)特定條件終止相應(yīng)進程
-U根據(jù)進程所屬的用戶名終止相應(yīng)進程
-t根據(jù)進程所在終端終止相應(yīng)進程
[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 ~]# jobsLinux中ping物理機的IP,進行會一直執(zhí)行,Ctrl+Z將當(dāng)前進程調(diào)入到后臺,jobs查看后臺進程,任務(wù)序號為1,fg 1將后臺進程調(diào)入到前臺,Ctrl+C終止當(dāng)前進程
計劃任務(wù)管理
一次性任務(wù),使用at命令,指定日期、時間點執(zhí)行一些預(yù)定的命令操作
服務(wù)腳本名稱:/etc/init.d/atd,在執(zhí)行這個命令之前首先要保證atd服務(wù)啟動
格式:at [HH:MM] [yyyy-mm-dd]
啟動服務(wù):service atd start,或者/etc/init.d/atd start
查看服務(wù)啟動狀態(tài):service atd status
Ctrl+D提交任務(wù)
atq查詢當(dāng)前設(shè)置的at任務(wù)列表
atrm刪除指定任務(wù)編號的at任務(wù)
atrm 編號
[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時刻創(chuàng)建file04,。因此首先獲取當(dāng)前時間,制定當(dāng)前時間之后的某個時間點創(chuàng)建file04的任務(wù)計劃,按Ctrl+D提交計劃,時間到了,發(fā)現(xiàn)任務(wù)執(zhí)行完畢,file04創(chuàng)建。
?
周期性任務(wù)crontab,按照預(yù)先設(shè)置的時間周期重復(fù)執(zhí)行任務(wù)
服務(wù)腳本名稱:/etc/init.d/crond,設(shè)置計劃之前保證服務(wù)啟動
全局配置文件,位于/etc/crontab
系統(tǒng)默認的設(shè)置位于/etc/cron.*/
用戶定義設(shè)置,位于文件/var/spool/cron/用戶名
crontab -e [-u 用戶名] 編輯計劃任務(wù),不指定用戶默認當(dāng)前用戶
crontab -l [-u 用戶名] 查看計劃任務(wù),不指定用戶默認當(dāng)前用戶
crontab -r [-u 用戶名] 刪除計劃任務(wù),不指定用戶默認當(dāng)前用戶,只能刪除當(dāng)前用戶的周期性任務(wù)計劃
只有root用戶才能為其他用戶制定周期性任務(wù)計劃,其他用戶只能管理自己的周期性任務(wù)計劃
任務(wù)配置格式:
分鐘(0-59)? 小時(0-23)? 日期? ? 月份? ? 星期 (0-7)? ?命令(要執(zhí)行的命令或程序腳本)
時間數(shù)值的特殊表示方法:
*表示該范圍內(nèi)的任意時間
,表示間隔多個不連續(xù)的時間點
-表示一個連續(xù)的時間范圍
/指定間隔的時間頻率
示例:
0 17 * *? 1-5? ? ? ?每天周一到周五的17點整
30 8 * * 1,3,5? ? ?周一周三周五的8:30執(zhí)行
0 9-22/2 * * 7 星期天的9點到22點每隔兩小時執(zhí)行一次
案例:
每天早上7:50自動開啟sshd服務(wù),22點50時關(guān)閉
每隔5天清空一次FTP服務(wù)器公共目錄/var/ftp/pub
每周六的7:30時,重新啟動httpd服務(wù)
??每周一、三、五的17:30時,打包并壓縮/etc/httpd目錄
[root@localhost home]# cd /var/spool/cron [root@localhost cron]# ls [root@localhost cron]# crontab -e -u root進入/var/spool/cron目錄,開始編輯計劃任務(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ù)或者指令要寫出絕對路徑,查看當(dāng)前用戶的任務(wù)計劃
[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ù)計劃
[root@localhost cron]# crontab -r [root@localhost cron]# crontab -l no crontab for root?
總結(jié):
INIT進程,系統(tǒng)的第一個進程,PID為1,存放在/etc/inittab
runlevels,Linux系統(tǒng)的運行級別,0-7,7個級別,4未分配;runlevel命令查看最近一次修改之前的運行級別和當(dāng)前運行級別
chkconfig --list
chkconfig?--level 級別列表 服務(wù)名 on|off
ps統(tǒng)計靜態(tài)進程信息,ps aux
top查看動態(tài)進程排名信息
pgrep根據(jù)條件查詢進程信息
pstree以樹形結(jié)構(gòu)顯示進程之間的關(guān)系,pstree -aup
Ctrl+Z、jobs、fg 任務(wù)序列號、Ctrl+C、kill、killall、killall -9
at一次性任務(wù),/etc/init.d/atd 、atq、atrm
crontab周期性任務(wù)計劃,/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基础知识--进程管理与计划任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PYPL 二月榜单发布:最受欢迎的编程语
- 下一篇: mac下用scp命令实现本地文件与服务器