2021-05-12 14:32:11
Linux基礎教學學習筆記7——監視和管理進程
Linux基礎教學學習筆記7——監視和管理進程
1、檢視進程
某個進程的基礎上生成了另一個進程,則它們為父子進程;
[root@linuxidc ~]# pstree
├─sshd───sshd───bash───pstree
[root@linuxidc ~]# ps
PID TTY TIME CMD
2797 pts/0 00:00:00 bash
2874 pts/0 00:00:00 ps
檢視所有進程,x表示顯示不屬於任何終端的子進程,即tty顯示為?,ps -ef等同於ps aux,不同的系統風格而已:
[root@linuxidc ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY(終端) STAT(狀態) START TIME COMMAND
root 1 0.2 0.7 53676 7580 ? Ss 17:49 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root 2 0.0 0.0 0 0 ? S 17:49 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 17:49 0:00 [ksoftirqd/0]
如果只顯示某幾列的值,則可以使用以下命令,比如只想顯示PID,CPU,MEM:
[root@linuxidc ~]# ps -ex -o pid,%cpu,%mem --noheader|head
1 0.1 0.7
2 0.0 0.0
3 0.0 0.0
5 0.0 0.0
6 0.0 0.0
7 0.0 0.0
8 0.0 0.0
9 0.0 0.0
10 0.0 0.0
11 0.0 0.0
動態顯示系統的進程資訊,使用top命令,可以在top命令後面加上時間選項,調整進程顯示頻率,如top 1:
top - 18:22:31 up 33 min, 2 users, load average: 0.00, 0.01, 0.06
Tasks: 255 total, 2 running, 253 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1010860 total, 590376 used, 420484 free, 884 buffers
KiB Swap: 2097148 total, 0 used, 2097148 free. 218452 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3249 root 20 0 123776 1764 1156 R 0.3 0.2 0:00.08 top
1 root 20 0 53676 7580 2524 S 0.0 0.7 0:03.04 systemd
2、檢視進程的信號
常用的信號為:9——殺死進程,15——終止進程;2——相當於ctrl+c;使用方式:kill -9 PID,kill如果不指定信號值,則預設指15
[root@linuxidc ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1
11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM
16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP
21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ
26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR
31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3
38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8
43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13
48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12
53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7
58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2
63) SIGRTMAX-164) SIGRTMAX
可以使用pgrep和pidof直接檢視進程PID,兩個命令的區別是pidof是精確匹配,pgrep支援模糊匹配:
[root@linuxidc ~]# pgrep ssh
1621
2793
ctrl+z可以讓進程在後台執行,通過jobs命令可以檢視後台執行的進程,bg 後台PID和fg PID可以讓進程在後台或者前台執行,要殺死後台執行的進程,可以使用命令:kill -9 %1(後台執行的PID):
通過使用nohup命令可以讓進程在後台執行,即使終端關閉,進程也會繼續執行:
[root@linuxidc ~]# nohup firefox %> /dev/null &
相關文章