一、進程管理
1.進程簡介
一個程序對應多個進程;一個進程對應一個程序。
2.進程狀態的查看與控制
查看進程狀態
w 查看個別用戶的進程 eg: w userName
list-info
JCPU:
PCPU:
WAHT:
from:
IDLE: 用戶空閑時間
load average:
ps -aux
-a: 顯示所有用戶的進程
-u:顯示用戶名和啟動時間
-x:顯示沒有控制終端的內容
ps -el
-e:顯示所有進程,包括沒有控制終端的進程
-l:以長格式顯示進程
list-info
PID:進程號
PPID:父進程的進程號
TTY:進程啟動的終端
STAT:進程當前的狀態
S :休眠
D :不可中斷的休眠
R :運行
Z :僵死
T :停止
NI:進程優先級
TIME:進程啟動總時間
COMMAND:進程名稱
查看進程排序
ps -aux –sort pid[PID/TIME/UID/PPID/TTY/STAT]
查看進程篩選
ps -aux|grep processName
殺死或重新啟動進程
為什么要殺死進程:
占資源;進程死了;執行時間長,沒效果。。。
命令:
kill pid
kill -9 pid
kill -s 信號 pid
kill -l 列出所有的信號
killall 進程名(CMD) 殺死所有相關的進程
改變進程的運行優先級(-20, 19)
nice -n command & 指定程序運行優先級
renice n pid 改變一個正在運行的程序的優先級
實時查看進程狀態
top 默認5秒刷新一次
top -d 1
top -c 顯示整個命令行,不僅是命令名
top -d 1 -c 設置1秒刷新一次
top -q 立刻更新所顯示的信息
進程的掛起和恢復
正在運行,掛起可以 ctrl + z
如果開啟時,可以在后邊使用&
command &
command
ctrl + c ctrl + z
jobs
fg4
bg4
二、任務計劃
3.一次性安排進程任務
at 安排作業,某個程序在某一時刻執行一次
第一步:開啟atd service atd start
第二步:添加一個任務
格式:at time
eg: 在10:20的時候,執行一個命令,插入一行文字到某個文本里邊
at 10:20
>/bin/cp -r /root/* /home/bruce
>/bin/echo “2222222222” > /home/bruce/1.txt
注意:一定要使用命令的全路徑
ctrl + d 完成
time說明:
絕對計時方法
midnight noon teatime
HH:MM [today]
HH:MM tomorrow
HH:mm 星期
HH:MM mm/dd/yyyy
相對計時方法
now + n minutes
now + n hours
now + n day
第三步:查看任務
at -l 查看 或者 atq查看
第四步:刪除一個任務
at -d 任務號 或者 atrm 任務號
第五步:使用命令文件的方式
at -f 文件 時間點
at < 文件 時間點
第六步:at的執行結果和配置文件
/etc/at.allow
如果這個文件存在,那么只有在列在測文件中的用戶才能使用at命令;
如果這個文件不存在,則查/etc/at.deny;
/etc/at.deny
如果這個文件存在,則在此文件中的列出的用戶都不能使用at命令;
如果兩個文件都不存在,則只有root用戶可以使用at命令;
如果兩個文件都存在,而且均為空,則所有用戶都可以使用at命令。
附件:
batch 安排作業,某個程序在系統負載不重時執行一次
—
4.周期性安排進程任務
crond
①service crond start 開啟服務
crond 進程搜索crontab文件并載入內存
crontab文件即/var/spool/cron/目錄下以用戶名命名的文件
crond進程啟動以后,他將首先檢查是否用戶設置了crontab文件,如果沒有,轉入“休眠”狀態,釋放系統資源
crond進程每分鐘醒來一次,查看crontab文件,決定當前是否有需要執行的命令,執行結束后,然后輸出都將作為郵件發送給crontab的所有者
②crontab -e 創建編輯crontab文件
eg: */1 * * * * /bin/pc
任務包括兩個內容:時間 + 操作
a.時間
minute : 一小時中的哪一分鐘[ 0 – 59 ]
hour : 一天中的哪一個小時[ 0 – 23 ]
day-of-month: 一個月中的哪一天 [ 1 – 31 ]
month-of-year: 一年中的那一個月 [ 1 – 12 ]
day-of-week: 一周中的哪一天 [ 0 – 6 ]
b.操作
commands: 執行的命令, 命令要是用絕對路徑
這些項不能為空,必須填入
如果用戶不需要指定其中的幾項, 那么可以使用通配符號“*”表示任何時間
每個時間字段都可以指定多個值,用”,”間隔
eg: 每天的1點和3點 * 1,3 * * * commands
每個時間字段都可以指定范圍,用”-“間隔
eg: 每天的8點到10點 * 8-10 * * * commands
每個時間字段都可以使用間隔,用/表示
eg: 每隔一分鐘 */1 * * * * commands
用戶必須具有運行所對應命令或程序的權限
③查看 crontab -l
④刪除 crontab -r
⑤crontab的配置文件,限制哪些用戶可以使用crontab命令,規則與at一致
/etc/cron.allow
/etc/cron.deny
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/86708