最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Linux/Centos7系統(tǒng)管理之進程與計劃任務(wù)管理

2021-07-28 11:19 作者:Vecloud_  | 我要投稿



Linux/Centos7系統(tǒng)管理之進程與計劃任務(wù)管理查看進程——靜態(tài)和動態(tài)查看控制進程——條件和全部at?一次性任務(wù)設(shè)置crontab?周期性任務(wù)設(shè)置一、程序和進程的關(guān)系(1)概念程序:保存在硬盤、光盤等介質(zhì)中的可執(zhí)行代碼和數(shù)據(jù),屬于靜態(tài)保存的代碼?
進程:在CPU及內(nèi)存中運行的程序代碼,屬于動態(tài)執(zhí)行的代碼?
(2)如何理解應(yīng)用程序、進程及線程的概念和聯(lián)系應(yīng)用程序——工廠進程——車間線程——工人一個應(yīng)用程序可以包含一個或多個進程,一個進程包含一個或多個線程,線程是執(zhí)行操作的最小單元?
ps:對應(yīng)高并發(fā)處理===使用多線程操作?
二、進程相關(guān)命令(1)查看進程信息psps?命令——不是Photoshop哈!?
man?手冊對其作用的描述是這樣的:“displays information about a selection of the active processes. ?If you want a repetitive update of the selection and the displayed information, use top(1) instead.”?
其意思為:顯示有關(guān)活動進程的選擇的信息。如果希望對選擇和顯示的信息進行重復(fù)更新,請使用top(這里的top也是查看進程的信息的,但是是動態(tài)查看,下面會具體講述)?
(2)ps命令的格式ps [選項] [參數(shù)]?
在man?手冊上給出的案例我節(jié)選部分常用的出來進行演示和講述:?
-aux?:“-”可以省略,表示查看系統(tǒng)中使用BSD語法規(guī)則的每個進程?
-elf:表示查看系統(tǒng)中使用標準語法的每個進程,不能省略“-”?
實例如下:?
[root@lokott ~]# ps aux ????????????????//ps -aux也一樣USER ???????PID %CPU %MEM ???VSZ ??RSS TTY ?????STAT START ??TIME COMMANDroot ?????????1 ?0.0 ?0.4 210140 ?4864 ? ???????Ss ??14:23 ??0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21root ?????????2 ?0.0 ?0.0 ?????0 ????0 ? ???????S ???14:23 ??0:00 [kthreadd]root ?????????3 ?0.0 ?0.0 ?????0 ????0 ? ???????S ???14:23 ??0:00 [ksoftirqd/0]root ?????????5 ?0.0 ?0.0 ?????0 ????0 ? ???????S< ??14:23 ??0:00 [kworker/0:0H]root ?????????6 ?0.0 ?0.0 ?????0 ????0 ? ???????S ???14:23 ??0:00 [kworker/u256:0]root ?????????7 ?0.0 ?0.0 ?????0 ????0 ? ???????S ???14:23 ??0:00 [migration/0]root ?????????8 ?0.0 ?0.0 ?????0 ????0 ? ???????S ???14:23 ??0:00 [rcu_bh]root ?????????9 ?0.0 ?0.0 ?????0 ????0 ? ???????R ???14:23 ??0:00 [rcu_sched]...解釋:PID表示進程ID,%CPU表示CPU使用率,%MEM表示內(nèi)存使用率,TTY表示終端,STAT表示的是狀態(tài):S?是sleep可中斷,s表示父進程,<表示的是優(yōu)先級高,R正在運行的進程,?l表示的是多線性進程,N優(yōu)先級低,Z僵尸進程,D不可中斷休眠進程,+前臺進程。?
[root@lokott ~]# ps -elf ???//當前-長格式—完整形式 ?????????????????F S UID ????????PID ??PPID ?C PRI ?NI ADDR SZ WCHAN ?STIME TTY ?????????TIME CMD4 S root ?????????1 ?????0 ?0 ?80 ??0 - 52535 ep_pol 14:23 ? ???????00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 211 S root ?????????2 ?????0 ?0 ?80 ??0 - ????0 kthrea 14:23 ? ???????00:00:00 [kthreadd]1 S root ?????????3 ?????2 ?0 ?80 ??0 - ????0 smpboo 14:23 ? ???????00:00:00 [ksoftirqd/0]1 S root ?????????5 ?????2 ?0 ?60 -20 - ????0 worker 14:23 ? ???????00:00:00 [kworker/0:0H]1 S root ?????????6 ?????2 ?0 ?80 ??0 - ????0 worker 14:23 ? ???????00:00:00 [kworker/u256:0]1 S root ?????????7 ?????2 ?0 -40 ??- - ????0 smpboo 14:23 ? ???????00:00:00 [migration/0]1 S root ?????????8 ?????2 ?0 ?80 ??0 - ????0 rcu_gp 14:23 ? ???????00:00:00 [rcu_bh]....解釋:PPID表示父進程?PRI表示的是用戶態(tài)的優(yōu)先級?NI表示的是NICE值(內(nèi)核),范圍是(-20~19)值越低越優(yōu)先?
,SZ交換分區(qū)占用的空間大小?
(3)補充在ps命令中一般可以結(jié)合管道符號和grep等命令組合使用,提高工作效率?
(4)動態(tài)查看top[root@lokott ~]# top ????????????????????//每三秒會自動刷新一次top - 15:58:48 up ?1:35, ?3 users, ?load average: 0.00, 0.01, 0.05Tasks: 190 total, ??1 running, 189 sleeping, ??0 stopped, ??0 zombie%Cpu(s): ?0.0 us, ?0.0 sy, ?0.0 ni,100.0 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 stKiB Mem : ??999696 total, ???65636 free, ??711552 used, ??222508 buff/cacheKiB Swap: ?4194300 total, ?4160824 free, ???33476 used. ???78272 avail Mem ???PID USER ?????PR ?NI ???VIRT ???RES ???SHR S %CPU %MEM ????TIME+ COMMAND ???????????????????????????????????????????????????????????????????????????????619 root ?????20 ??0 ?231608 ??3264 ??2836 S ?0.3 ?0.3 ??0:03.25 vmtoolsd ?????????????????????????????????????????????????????????????????????????????4582 root ?????20 ??0 ??????0 ?????0 ?????0 S ?0.3 ?0.0 ??0:00.20 kworker/0:2 ?????????????????????????????????????????????????????????????????????????????1 root ?????20 ??0 ?210140 ??4864 ??3024 S ?0.0 ?0.5 ??0:01.35 systemd ?????????????????????????????????????????????????????????????????????????????????2 root ?????20 ??0 ??????0 ?????0 ?????0 S ?0.0 ?0.0 ??0:00.00 kthreadd ????????????????????????????????????????????????????????????????????????????????3 root ?????20 ??0 ??????0 ?????0 ?????0 S ?0.0 ?0.0 ??0:00.06 ksoftirqd/0 ?????????????????????????????????????????????????????????????????????????????5 root ??????0 -20 ??????0 ?????0 ?????0 S ?0.0 ?0.0 ??0:00.00 kworker/0:0H ???????.....在top命令下,進程的查看是動態(tài)變化的,m可以進行內(nèi)存使用率排序c可以進行cpu排序,q可以退出,或者Ctrl+c直接終止該命令。?
四、條件查看進程pgrep命令?
在man手冊中pgrep和pkill是放在一起的,如下所示:?
NAME ???????????????????//命令名稱,根據(jù)名字或者其他屬性查找進程?
pgrep, pkill - look up or signal processes based on name and other attributes?
SYNOPSIS ??????????????//表示的是命令的格式?
pgrep [options] pattern?
pkill [options] pattern?
DESCRIPTION?
pgrep ?looks through the currently running processes and lists the process IDs which match the selection criteria to stdout. ?All the criteria have to match. ?For example,?
??????????$ pgrep -u root sshd ??will only list the processes called sshd AND owned by root. ?On the other hand, ?????????$ pgrep -u root,daemon ??will list the processes owned by root OR daemon. ??pkill will send the specified signal (by default SIGTERM) to each process instead of listing them on stdout.那么我就根據(jù)上面給出的例子來進行實驗:(pkill下面有講)?
[root@lokott ~]# pgrep -u root sshd ??????????????//僅僅列出名稱為sshd且屬于root的進程號10022820[root@lokott ~]# pgrep -u root,daemon |wc -l ?????//列出屬于root或者daemon的所有進程號到管道中統(tǒng)計數(shù)量175[root@lokott ~]# pgrep -l "log" ????????????????//查看包含log的進程id和信息292 xfs-log/sda2479 xfs-log/sda5480 xfs-log/sda1593 abrt-watch-log596 systemd-logind601 rsyslogd602 abrt-watch-log2735 xfs-log/md0樹型查看——pstree?
-aup “-”不可以省略,pstree -ap?用戶名?
五、進程的啟動方式1.啟動進程(1)手工啟動前臺啟動:用戶輸入命令,直接執(zhí)行程序?
后臺啟動:在命令行尾加入“&”符號?
(2)調(diào)度啟動進程的前后臺調(diào)度?
Ctrl+z——停止進程?
jobs -l ——查看進程狀態(tài)?
fg?序號——將進程掉到前臺來執(zhí)行?
bg?序號——將停止的進程在后臺繼續(xù)執(zhí)行?
[root@lokott ~]# umount /mnt[root@lokott ~]# mount /dev/sr0 /mntmount: /dev/sr0?寫保護,將以只讀方式掛載[root@lokott ~]# df -hT文件系統(tǒng) ??????類型 ?????容量 ?已用 ?可用 已用%?掛載點/dev/sda2 ?????xfs ???????20G ?4.4G ??16G ??22% /devtmpfs ??????devtmpfs ?474M ????0 ?474M ???0% /devtmpfs ?????????tmpfs ????489M ????0 ?489M ???0% /dev/shmtmpfs ?????????tmpfs ????489M ?7.2M ?482M ???2% /runtmpfs ?????????tmpfs ????489M ????0 ?489M ???0% /sys/fs/cgroup/dev/sda5 ?????xfs ???????10G ??37M ??10G ???1% /home/dev/sda1 ?????xfs ??????6.0G ?158M ?5.9G ???3% /boottmpfs ?????????tmpfs ?????98M ?4.0K ??98M ???1% /run/user/42tmpfs ?????????tmpfs ?????98M ??24K ??98M ???1% /run/user/0/dev/sr0 ??????iso9660 ??4.3G ?4.3G ????0 ?100% /mnt[root@lokott ~]# cd /mnt/[root@lokott mnt]# lsCentOS_BuildTag ?GPL ??????LiveOS ???RPM-GPG-KEY-CentOS-7EFI ?????????????images ???Packages ?RPM-GPG-KEY-CentOS-Testing-7EULA ????????????isolinux ?repodata ?TRANS.TBL[root@lokott mnt]# cd [root@lokott ~]# cp -r /mnt/Packages/ /opt/ & ??????????????//&符號就是將該命令放在后臺運行[1] 5354[root@lokott ~]# jobs -l ?????????????????????????????????//查看進程完成狀態(tài)[1]+ ?5354?完成 ?????????????????cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# cp -r /mnt/Packages/ /opt/ ?????????????????//刪除原來的然后重新再前臺執(zhí)行命令^Z[1]+ ?已停止 ??????????????cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# jobs -l ?????????????????????????????????//查看進程狀態(tài)[1]+ ?5403?停止 ?????????????????cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# fg 1 ????????????????????????????????????//調(diào)出后臺進程到前臺來進行運行cp -i -r /mnt/Packages/ /opt/^Z[1]+ ?已停止 ??????????????cp -i -r /mnt/Packages/ /opt/[root@lokott ~]# kill -9 5403 ???????????????????????????????//強制kill?掉進程(-9)[root@lokott ~]# jobs -l[1]+ ?5403?已殺死 ??????????????cp -i -r /mnt/Packages/ /opt/(3)終止進程Ctrl+c ——中斷正在執(zhí)行的命令?
1.kill、killall命令?
kill用于終止指定PID號的進程?-9?表示強制終止?
killall用于終止指定名稱的所有進程?
上面的實例中已經(jīng)給出了kill?的實例,下面看一下killall的實例:?
[root@lokott ~]# vim 1.sh &[3] 5696[root@lokott ~]# vim 2.sh &[4] 5697[3]+ ?已停止 ??????????????vim 1.sh[root@lokott ~]# jobs -l[1] ??5694?停止?(tty?輸出) ????vim 1.sh[2] ??5695?停止?(tty?輸出) ????vim 1.sh[3]- ?5696?停止?(tty?輸出) ????vim 1.sh[4]+ ?5697?停止?(tty?輸出) ????vim 2.sh[root@lokott ~]# killall -9 vim[1] ??已殺死 ??????????????vim 1.sh[2] ??已殺死 ??????????????vim 1.sh[3]- ?已殺死 ??????????????vim 1.sh[4]+ ?已殺死 ??????????????vim 2.sh[root@lokott ~]# 2.pkill命令?
根據(jù)特定條件終止相應(yīng)的進程——pkill命令(實際上用的非常多)?
-U:根據(jù)進程所屬的用戶名終止相應(yīng)進程?
-t:根據(jù)進程所在的終端終止相應(yīng)進程?
[root@lokott ~]# pgrep -l -U "zhangsan"1472 gnome-keyring-d1491 gnome-session-b1498 dbus-launch1499 dbus-daemon1557 gvfsd1562 gvfsd-fuse1649 ssh-agent1668 at-spi-bus-laun1673 dbus-daemon1678 at-spi2-registr1695 gnome-shell.......2208 gvfsd-metadata2211 ibus-engine-sim[root@lokott ~]# pkill -9 -U zhangsan ?//前臺是本地是張三登錄的狀態(tài)此時服務(wù)器那邊會將zhangsan用戶踢出,然后到登錄界面小結(jié):普通用戶是無法用pkill命令踢出root,但可以用pgrep查看?
六、計劃任務(wù)管理(1)at命令設(shè)置計劃任務(wù)命令格式——at ?[HH:MM] [yyyy-mm-dd]?
注意:這個命令是必須將時間用在之后的時間,例如:at 10:33 2020-08-05?
然后輸入命令,最后Ctrl+D?
date命令——獲取當前時間?
atq——查看準備被執(zhí)行的進程列表?
atrm 2——刪除?
請看實例:?
[root@lokott ~]# date ???????????????????????????????????????????//顯示當前時間2019年?11月?12日 星期二?17:28:24 CST[root@lokott ~]# at 17:35 2019-11-12 ??????????????????????????//設(shè)定計劃任務(wù)at> pgrep -U root |wc -l > /opt/ps.txtat> <EOT>job 1 at Tue Nov 12 17:35:00 2019[root@lokott ~]# cat /opt/ps.txt ??????????????????????????????//由于時間未到所有沒法看到cat: /opt/ps.txt:?沒有那個文件或目錄[root@lokott ~]# atq1 ??Tue Nov 12 17:35:00 2019 a root[root@lokott ~]# at 17:34 2019-11-12at> echo "123" > 1.txtat> <EOT>job 2 at Tue Nov 12 17:34:00 2019[root@lokott ~]# atq ?????????????????????????????????????????????//查看一次性任務(wù)命令1 ??Tue Nov 12 17:35:00 2019 a root2 ??Tue Nov 12 17:34:00 2019 a root[root@lokott ~]# ls1.txt ????????????????note ??模板 ?文檔 ?桌面anaconda-ks.cfg ??????shell ?視頻 ?下載initial-setup-ks.cfg ?公共 ??圖片 ?音樂[root@lokott ~]# cat 1.txt 123[root@lokott ~]# atrm 1 ??????????????????????????????????????//刪除還未執(zhí)行的任務(wù)[root@lokott ~]# atq[root@lokott ~]# atrm 1 ?????????????????????????????????????????//已刪除和已經(jīng)完成的任務(wù)無法再次刪除Cannot find jobid 1該序列號是固定的,而不是動態(tài)的,這是為了避免多終端時大家刪除任務(wù)的時候誤刪?
(2)周期性計劃任務(wù)配置——crontab命令crontab命令(重要)——定時任務(wù)(按照預(yù)先設(shè)置的時間周期重復(fù)執(zhí)行用戶指定的命令操作),man手冊上的介紹是:crontab - maintains crontab files for individual users?
crontab -e [-u ]-l——list-r——remove?所有的編寫格式為分 時 日 月 周 命令,下面的/etc/crontab文件中有顯示寫入格式?
其中*表示該范圍內(nèi)的任意時間,-表示連續(xù)的時間?
,表示不連續(xù)的時間點,/表示頻率?
對于該命令,我的理解就是——“私人訂制”,這個命令可以用來存儲一個定時任務(wù)制表文件,可以用來對周期性定時任務(wù)的設(shè)置(-e)刪除(-r)和查看(-l)等操作,實例如下:?
[root@lokott ~]# which crontab ????????//查看crontab命令的位置/usr/bin/crontab[root@lokott ~]# cat /etc/crontab ?????//查看命令的配置文件信息SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs ??????//文件寫入格式為——分 時 日 月 周 ?# Example of job definition:# .---------------- minute (0 - 59)# | ?.------------- hour (0 - 23)# | ?| ?.---------- day of month (1 - 31)# | ?| ?| ?.------- month (1 - 12) OR jan,feb,mar,apr ...# | ?| ?| ?| ?.---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | ?| ?| ?| ?|# * ?* ?* ?* ?* user-name ?command to be executed[root@lokott ~]# crontab -e ????//打開一個交互窗口寫入命令,命令在下面用-l參數(shù)可以顯示no crontab for zhangsan - using an empty onecrontab: installing new crontab[root@lokott ~]# crontab -l ????//顯示寫入的命令代碼,表示每分鐘寫入一次12346* * * * * echo "12346" >> 1.txt[root@lokott ~]# cat 1.txt ????hellohello[root@lokott ~]# cat 1.txt hellohello123461234612346主要的設(shè)置文件位置:?
全局配置文件,位于文件/etc/crontab ?——實例中已經(jīng)給出系統(tǒng)默認的設(shè)置位于目錄/etc/cron.*/用戶定義的設(shè)置(必默寫)位于文件/var/spool/cron/用戶名。在編輯命令的過程中錯誤的命令被執(zhí)行的時候會將錯誤的信息存放到該文件中:/var/spool/mail/zhangsan[root@lokott ~]# ls /etc/cron.*//etc/cron.d/:0hourly ?raid-check ?sysstat/etc/cron.daily/:logrotate ?man-db.cron ?mlocate/etc/cron.hourly/:0anacron/etc/cron.monthly/:/etc/cron.weekly/:[root@lokott ~]# su - zhangsan[zhangsan@lokott ~]$ crontab -l5 10 * * 1-5 echo "haha" > 1.txt ????????//周一至周五10:05執(zhí)行命令6 10 * * 2,4,6 echo "ttuu" >> 1.txt ????//周二、四、六的10:06執(zhí)行命令10 10-14/2 * * * echo "sdas" >> 1.txt ??//每天的10點10分至14點10分每兩小時執(zhí)行一次命令*/5 * */2 * * ls ./shell ???????????????//每隔兩天,每隔5分鐘執(zhí)行命令[root@lokott zhangsan]# cat /var/spool/cron/zhangsan ?????//用戶定義的設(shè)置在該文件中5 10 * * 1-5 echo "haha" > 1.txt6 10 * * 2,4,6 echo "ttuu" >> 1.txt10 10-14/2 * * * echo "sdas" >> 1.txt*/5 * */2 * * ls ./shell*/1 * * * * echo "sdsad" >> 1.txt[zhangsan@lokott ~]$ crontab -e ???????//我準備添加新的計劃任務(wù)crontab: installing new crontab您在?/var/spool/mail/zhangsan?中有新郵件 ?????????//提示我有新的內(nèi)容,其實就是報錯的信息,信息如下所示[zhangsan@lokott ~]$ cat /var/spool/mail/zhangsanFrom zhangsan@lokott.localdomain ?Wed Nov 13 10:05:02 2019Return-Path: <zhangsan@lokott.localdomain>X-Original-To: zhangsanDelivered-To: zhangsan@lokott.localdomainReceived: by lokott.localdomain (Postfix, from userid 1001) ???id 04DC131C6EDF; Wed, 13 Nov 2019 10:05:01 +0800 (CST)From: "(Cron Daemon)" <zhangsan@lokott.localdomain>To: zhangsan@lokott.localdomainSubject: Cron <zhangsan@lokott> ls ./shellContent-Type: text/plain; charset=UTF-8Auto-Submitted: auto-generatedPrecedence: bulkX-Cron-Env: <XDG_SESSION_ID=149>X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/1001>X-Cron-Env: <LANG=zh_CN.UTF-8>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/home/zhangsan>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=zhangsan>X-Cron-Env: <USER=zhangsan>Message-Id: <20191113020502.04DC131C6EDF@lokott.localdomain>Date: Wed, 13 Nov 2019 10:05:01 +0800 (CST)七、總結(jié)本文主要是對Linux中進程和計劃任務(wù)的管理的介紹和命令演示,包括靜態(tài)查看(ps)和動態(tài)查看(top)進程命令,按條件查看(pgrep)和以樹型結(jié)構(gòu)查看(pstree);其次是對進程控制的介紹,包括啟動進程,調(diào)度進程(Ctrl+Z、jobs、fg、bg)以及終止進程的命令(kill、killall、pkill);最后是對計劃任務(wù)設(shè)置命令的介紹,即at和crontab命令,其中注意at是一次性有效,且需要在當前時間(date命令查看當前時間)之后,有年份設(shè)置,而crontab命令是計劃性周期命令,沒有年份的設(shè)置。?
最后感謝閱讀!?


Linux/Centos7系統(tǒng)管理之進程與計劃任務(wù)管理的評論 (共 條)

分享到微博請遵守國家法律
望都县| 邛崃市| 宁都县| 宝兴县| 滨海县| 二连浩特市| 建阳市| 清苑县| 崇仁县| 宁南县| 新竹市| 浦东新区| 崇左市| 青龙| 丰顺县| 龙井市| 察隅县| 阜新市| 宜州市| 湘西| 班戈县| 宜兰市| 成武县| 阿拉善左旗| 涞水县| 东方市| 永丰县| 萨迦县| 萨嘎县| 西和县| 镇江市| 潮州市| 比如县| 天长市| 昌邑市| 惠水县| 禄丰县| 自贡市| 中超| 开封市| 璧山县|