Linux基础知识--进程管理与计划任务
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 klogdinit的進(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 ~]# jobsLinux中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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PYPL 二月榜单发布:最受欢迎的编程语
- 下一篇: mac下用scp命令实现本地文件与服务器