檢視中止程序

2021-04-13 08:26:43 字數 2847 閱讀 6346

描述基本程序和任務控制

在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與...