首頁 > 軟體

Linux基礎教學學習筆記7——監視和管理進程

2020-06-16 18:05:08

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 &


IT145.com E-mail:sddin#qq.com