LPI Linux 認證/建立、監控和終止程序
(LPIC-1 版本 5.0)
權重:4
描述
考生應該能夠執行基本的程序管理。
關鍵知識領域
- 在前景和後臺執行作業。
- 訊號程式在登出後繼續執行。
- 監控活動程序。
- 選擇和排序程序以顯示。
- 向程序傳送訊號。
以下是使用檔案、術語和實用程式的部分列表
&bgfgjobskillnohuppstopfreeuptimepgreppkillkillallwatchscreentmux
正在執行的應用程式是程序。每個程序都有:程序 ID、父程序 ID、當前目錄 PWD、檔案描述符表、正在執行的程式、環境變數(從其父程序繼承)、stdin、stdout、stderr(標準錯誤),以及可能還有更多(可選)特徵。
Bash 是一個程式,當它被執行時,它就會成為一個程序。每次在 shell 中執行命令時,都會建立一個新程序。除了內建的 shell 命令。它們在 shell 上下文中執行。使用 type 檢查命令是否為內建的 shell 命令。
示例
type cp ls which type
要即時監控程序,請使用 top。
top - 9:20am up 2:48, 4 users, load average: 0.15, 0.13, 0.09 78 processes: 75 sleeping, 3 running, 0 zombie, 0 stopped CPU states: 15.3% user, 0.3% system, 0.0% nice, 84.2% idle Mem: 254896K av, 251204K used, 3692K free, 0K shrd, 27384K buff Swap: 514072K av, 0K used, 514072K free 120488K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 1517 rarrigon 0 0 40816 39M 17372 R 15.0 16.0 2:59 mozilla-bin 1727 rarrigon 19 0 988 988 768 R 0.3 0.3 0:00 top 1 root 20 0 220 220 188 S 0.0 0.0 0:04 init 2 root 20 0 0 0 0 SW 0.0 0.0 0:00 keventd
RSS 是任務使用的物理記憶體總量。SHARE 是任務使用的共享記憶體量。%CPU 是任務的 CPU 時間份額。%MEM 是任務的物理記憶體份額。top 執行後,也可以執行互動式命令。
- 鍵入 N 按 pid 排序任務。
- 鍵入 A 按年齡排序任務(最新的排在最前面)。
- 鍵入 P 按 CPU 使用率排序任務。
- 鍵入 M 按記憶體使用率排序任務。
- 鍵入 k 終止程序(注意:系統會提示你輸入程序的 pid)。
系統啟動並執行後,從終端可以檢視哪些程序正在執行,方法是使用 ps 程式。
要顯示系統中所有程序的長格式,請使用以下命令
ps -Al F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 004 S 0 1 0 0 80 0 - 112 do_sel ? 00:00:04 init 004 S 0 381 1 0 80 0 - 332 do_sel ? 00:00:00 dhcpcd 006 S 0 1000 1 0 80 0 - 339 do_sel ? 00:00:00 inetd 044 R 0 1524 1222 0 79 0 - 761 - pts/3 00:00:00 ps
ps 程式將顯示所有正在執行的程序及其 PID 號和其他資訊。要檢視登入會話中程序的長格式,請使用
ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 000 S 500 1154 1139 0 80 0 - 724 wait4 pts/1 00:00:00 bash 002 S 500 1285 1283 0 77 0 - 24432 wait_f pts/1 00:00:00 soffice.bin 040 R 500 1442 1435 0 79 0 - 768 - pts/4 00:00:00 ps F: Process Flags 002: being created, 040: forked but didn't exec, 400: killed by a signal. S: Process States: R: runnable, S: sleeping, Z: zompbie UID: User ID, PID: Process ID, PPID: Parent Process ID, C: Scheduler, PRI: priority NI: Nice value, SZ: size of routine, WCHAN: name of routine
ps 程式將顯示所有正在執行的程序及其 PID 號。知道 PID 後,就可以向程序傳送訊號。
- SIGSTOP 停止程序。
- SIGCONT 繼續停止的程序。
- SIGKILL 終止程序。
向程序傳送訊號的程式稱為 kill。
kill -SIGKILL [pid] kill -63 [pid] kill -l
預設情況下,程序在前景啟動,它是唯一接收鍵盤輸入的程序。使用 CTRL+Z 暫停它。
要在後臺啟動程序,請使用 &。
bash & xeyes &
在 bash 程序中,可以啟動多個作業。用於操作作業的命令是 jobs。
jobs # List all the active jobs bg %job # Resume job in background fg %job # Resume job in foreground kill %job # Kill background job
當 bash 終止時,所有從會話啟動的程序都將收到 SIGHUP 訊號。預設情況下,這將終止程序。
要防止程序終止,可以使用 nohup 命令啟動程式。
nohup mydaemon
1. 如何控制 PID 為 3196 的 CPU 使用率