描述基本程序和任務控制
在solaris oe中執行的每個程式都會建立乙個程序。系統啟動程序被成為守護程序,守護程序在後台執行
並提供系統服務:如桌面登陸守護程序(dtlogin)提供使用者登陸時的圖形介面。
pid:系統分配給每個程序乙個唯一的id,稱為pid;使用者可以通過pid識別和控制程序。
uid及gid(使用者id和組id)也與每個程序關聯,它們用於指示程序的所有者及決定程序的執行許可。
理解父程序與子程序間的關係:子程序由父程序所建立,子程序執行時父程序等待,執行完成後父程序中
止子程序的執行![比如shell的執行,shell就算是個父程序]
1. 檢視程序:
格式:ps -options
對於每個程序,ps命令都會顯示pid(pid)、所在終端(tty)、累計執行時間(time)、命令名稱(cmd);
常用選項:
-e:顯示每個程序的pid、tty、time、cmd資訊;
-f:增加uid、父程序號(ppid)、程序開始時間(stime)的顯示;
例:ps -ef檢視系統所有執行程序的詳細列表!
ps -ef中列表各項說明:
uid:程序所有者的使用者名稱;
pid:程序唯一識別號;
ppid:程序的父程序識別號;
c:cpu使用率;(已廢除)
stime:程序開始時間(hh:mm:ss);
tty:顯示程序的控制終端;[注意:系統守護程序顯示為「?」標誌]!
time:程序累計執行時間;
cmd:命令的名稱、選項和引數;
2. 查詢指定程序:(兩種方法)ps和grep的聯合使用;單獨使用pgrep命令。
(1) ps和grep聯合式用(通過管道符):
例:ps -e | grep lp
(2) 單獨使用pgrep命令:(預設下,pgrep 程序名 得到的結果只顯示pid)
格式:pgrep -option(s) 程序名
常用選項說明:
-x:顯示完全匹配關鍵字的程序的pids;
-n:顯示匹配關鍵字的最近建立的那個程序的pid;
-u uid:顯示屬於指定使用者的程序的pids(uid可以為具體的使用者名稱或uid);
-l:顯示pid對應的程序名稱;
-t term:顯示分配給指定終端的程序。
注:檢視指定的程序
ps -ef|grep os_process_id
殺掉該程序
kill -9 os_process_id
重新查詢
ps -ef|grep os_process_id
ps -ef|grep "oracle" 顯示含有oracle字串的程序。
grep "ora_" grep是匹配這行的字串,也可以寫該行的其他字元。
例如:zzyxora01:/# ps -ef|grep 1278326
oracle 1278326 1389032 120 14:46:27 - 63:29 oraclezzdlyx1 (description=(local=yes)(address=(protocol=beq)))
該例程啟動時間是14:46:27,已用時:- 63:29 。
3. 傳送乙個訊號給程序:一般使用kill或pkill命令給程序傳送訊號!
p212_表9-4:訊號的號碼及名稱:
訊號number / 名稱 / 事件 / 描述 / 反應
1 / sighup / 掛起 / 放棄終端連線或讓一些程式在不中止的情況下重新初始化 / 退出
2 / sigint / 中斷 / 通常為使用鍵盤ctrl+c發出的中斷訊號 / 退出
9 / sigkill / 殺死 / 殺死乙個程序,程序無法忽略該訊號 / 退出
15 / sigterm / 終止 / kill或pkill發出的預設訊號,一些程序能忽略該訊號 / 退出
4. 終止程序:
(1)使用kill命令:普通使用者只能終止所有者為其自己的程序;root使用者能終止任何程序!
格式:kill [-signal訊號] pid(s)
一些程序能忽略kill預設發出的15訊號,如乙個程序如果在等待磁帶機完成操作,那麼就會忽略15訊號;
當然可以傳送訊號9強制關閉對15訊號無響應的程序:kill -9 pid
注意:除非處於必要,請謹慎使用kill命令傳送訊號9來結束程式;不然若用訊號9結束控制資料路或檔案
更新的程序,可能導致資料丟失!
(2)使用pkill命令:pkill [-options] process_name
[pkill命令預設也是傳送訊號15給程序,當然也可以強制傳送訊號9來結束程序]:
pkill -9 -x process_name
5. 在korn shell中管理任務:(本節內容理解可能有誤,請大家指正)!
任務也即程序,每個任務都擁有乙個pid!
系統可管理三種型別的任務:前台任務、後台任務、已停止的任務;
前台任務:命令執行過程中占用終端視窗知道命令結束;
後台任務:命令後跟&號執行則執行時不占用終端視窗;
已停止任務:前台任務執行中按下ctrl+z或對後台任務使用stop命令,使任務停止。
常用任務控制命令:
jobs:顯示當前執行或已停止的後台任務;
bg %n:在後台執行當前或指定的任務(n為job id);
fg %n:把當前或指定的任務帶到前台執行(n為job id);
ctrl+z:停止前台任務並移至後台變為已停止任務;
stop %n:停止後台執行的任務(n為job id);
注意:只能在shell中使用上述命令控制已啟動的任務!
linux下檢視中斷請求記錄 IRQ
linux下檢視中斷請求記錄。通過cpu的中斷請求的響應,可以看出cpu都在為哪些裝置幹活,幹的活有多少量等資訊。cat proc interrupts cpu0 cpu1 cpu2 cpu3 0 138328370700 0 io apic edge timer 1 300 0 io apic e...
linux下檢視中斷請求記錄 IRQ
linux下檢視中斷請求記錄。通過cpu的中斷請求的響應,可以看出cpu都在為哪些裝置幹活,幹的活有多少量等資訊。cat proc interrupts cpu0 cpu1 cpu2 cpu3 0 138328370700 0 io apic edge timer 1 300 0 io apic e...
檢視程序數 程序快照
1 以使用者zhangsan登入,完成下列操作 2 使用vim開啟abc.txt檔案,不要編輯 不退出 3 以使用者root登入另乙個終端,完成下列操作 4 檢視整個系統的程序樹,輸出pid號 完整命令列 5 查詢使用者zhangsan的程序樹 6 查詢使用者zhangsan的程序樹,並顯示pid與...