Note For Linux By Jes(11)-程序管理与SELinux 初探
什么是程序(Process):
子程序與父程序:
fork and exec:程序呼叫的流程:
系統或網絡服務:常駐在內存的程序
多重登陸環境的七個基本終端窗口:/etc/inittab
工作管理(jobcontrol):
job control 的管理:直接將命令丟到背景中『運行』的&
將『目前』的工作丟到背景中『暫停』:[ctrl]-z
觀察目前的背景工作狀態:jobs
將背景工作拿到前景來處理:fg對應&
讓工作在背景下的狀態變成運行中:bg對應[ctrl]-z
管理背景當中的工作:kill
離線管理問題:nohup
程序管理:
程序的觀察:
ps :將某個時間點的程序運行情況擷取下來
僅觀察自己的bash 相關程序:ps -l
F:代表這個程序旗標(process flags),說明這個程序的總結權限,常見號碼有:
-
若為4 表示此程序的權限為root ;
-
若為1 則表示此子程序僅進行復制(fork)而沒有實際運行(exec)。
-
-
S:代表這個程序的狀態(STAT),主要的狀態有:
-
R (Running):該程序正在運行中;
-
S(Sleep):該程序目前正在睡眠狀態(idle),但可以被喚醒(signal)。
-
D :不可被喚醒的睡眠狀態,通常這支程序可能在等待I/O 的情況(ex>列印)
-
T :停止狀態(stop),可能是在工作控制(背景暫停)或除錯(traced) 狀態;
-
Z(Zombie):僵尸狀態,程序已經終止但卻無法被移除至內存外。
-
-
UID/PID/PPID:代表『此程序被該UID 所擁有/程序的PID 號碼/此程序的父程序PID 號碼』
-
C:代表CPU 使用率,單位為百分比;
-
PRI/NI:Priority/Nice的縮寫,代表此程序被CPU 所運行的優先順序,數值越小代表該程序越快被CPU 運行。詳細的PRI 與NI 將在下一小節說明。
-
ADDR/SZ/WCHAN:都與內存有關,ADDR是kernel function,指出該程序在內存的哪個部分,如果是個running 的程序,一般就會顯示『- 』/ SZ 代表此程序用掉多少內存/ WCHAN 表示目前程序是否運行中,同樣的,若為 - 表示正在運行中。
-
TTY:登陸者的終端機位置,若為遠程登陸則使用動態終端介面(pts/n);
-
TIME:使用掉的CPU 時間,注意,是此程序實際花費CPU 運行的時間,而不是系統時間;
-
CMD:就是command 的縮寫,造成此程序的觸發程序之命令為何。
觀察系統所有程序:ps aux
top:動態觀察程序的變化
pstree:程序之間的相關性
程序的管理:
kill -signal PID
killall -signal 命令名稱
| 代號 | 名稱 | 內容 |
| 1 | SIGHUP | 啟動被終止的程序,可讓該PID 重新讀取自己的配置檔,類似重新啟動 |
| 2 | SIGINT | 相當於用鍵盤輸入[ctrl]-c 來中斷一個程序的進行 |
| 9 | SIGKILL | 代表強制中斷一個程序的進行,如果該程序進行到一半,那么尚未完成的部分可能會有『半產品』產生,類似vim會有.filename.swp 保留下來。 |
| 15 | SIGTERM | 以正常的結束程序來終止該程序。由於是正常的終止,所以后續的動作會將他完成。不過,如果該程序已經發生問題,就是無法使用正常的方法終止時,輸入這個 signal 也是沒有用的。 |
| 17 | SIGSTOP | 相當於用鍵盤輸入[ctrl]-z 來暫停一個程序的進行 |
| ? |
Priority 與Nice 值
nice :新運行的命令即給予新的nice 值
renice :已存在程序的nice 重新調整
系統資源的觀察:
free :觀察內存使用情況
uname:查閱系統與核心相關資訊
uptime:觀察系統啟動時間與工作負載
netstat :追蹤網絡或插槽檔
dmesg :分析核心產生的信息
vmstat :偵測系統資源變化
特殊文件與程序:
具有SUID/SGID 權限的命令運行狀態
/proc/* 代表的意義
fuser:藉由文件(或文件系統)找出正在使用該文件的程序
lsof :列出被程序所開啟的文件檔名
pidof :找出某支正在運行的程序的PID
SELinux初探:
SELinux 的運行模式:
安全性本文的一般配置為:『Identify:role:type』其中又以type 最重要;
SELinux 的模式有:enforcing, permissive, disabled 三種,而啟動的政策(Policy) 主要是targeted
SELinux 啟動與關閉的配置檔在:/etc/selinux/config
SELinux 的啟動與觀察:getenforce, sestatus 等命令
重設SELinux 的安全性本文可使用restorecon 與chcon
在SELinux 有啟動時,必備的服務至少要啟動setroubleshoot
若要管理默認的SELinux 布林值,可使用getsebool, setsebool 來管
總結
以上是生活随笔為你收集整理的Note For Linux By Jes(11)-程序管理与SELinux 初探的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新手小白学JAVA 日期类Date Si
- 下一篇: JCL,JES运作流程