Linux運維基礎進程管理實時監控控制
1.後臺運行作業
1.sleep 999 & (運行作業) [root@localhost ~]# sleep 999 & [1] 3670 2.ps -ef|grep sleep(查看進程) [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3671 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3674 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3677 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3678 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3686 950 0 10:54 ? 00:00:00 sleep 60 3.fg(調最後一個) [root@localhost ~]# fg sleep 999 4.jobs(查看任務) [root@localhost ~]# jobs [1] sleep 999 & [3] sleep 999 & [4] sleep 999 & [6]- sleep 999 & [7]+ sleep 999 ctr1+z(Done)完成 5.說明 fg %N (調指定的任務) stopped(停滯狀態) bg %3 (運行狀態) +(默認操作的) -(第二個操作的)
2.使用信號控制進程
基本進程管理信號
信號編號ID | 短名稱 | 定義名 | 用途 |
---|---|---|---|
1 | HUP | 掛起 | 讓一個進程不用重啟就可以重讀配置文件,並讓新的配置信息生效 |
2 | INT | 鍵盤中斷 | 中斷一個前臺進程。ctrl+c就是用的SIGINT信號 |
9 | KILL | 中斷,無法攔截 | 導致立即終止程序。無法被攔截、忽略或處理 |
15默認值 | TERM | 終止 | 導致程序終止。和SIGKILL不同,可以被攔截、忽略或處理。要求程序終止的友好方式,允許自我清理 |
kill命令根據ID向進程發送信號。雖其名稱為kill,但該命令可用於發送任何信號,而不僅僅是終止程序的信號
1.查看進程 [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3901 950 0 10:59 ? 00:00:00 sleep 60 root 3904 3642 0 10:59 pts/1 00:00:00 grep --color=auto sleep 2.刪除指定任務 [root@localhost ~]# kill %1 [root@localhost ~]# ps -ef|grep sleep root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3901 950 0 10:59 ? 00:00:00 sleep 60 root 3906 3642 0 11:00 pts/1 00:00:00 grep --color=auto sleep [1] sleep 999 3.kill -l(列出所有可以支持的程序) [root@localhost ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX [root@localhost ~]# 4. kill 3672(刪除進程) 查看進程 [root@localhost ~]# ps -ef|grep sleep root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3925 950 0 11:00 ? 00:00:00 sleep 60 root 4039 3642 0 11:00 pts/1 00:00:00 grep --color=auto sleep [root@localhost ~]# kill 3672 [root@localhost ~]# ps -ef|grep sleep root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3925 950 0 11:00 ? 00:00:00 sleep 60 root 4054 3642 0 11:01 pts/1 00:00:00 grep --color=auto sleep [3] sleep 99 5.killall sleep(刪除所有sleep) 查看進程:[root@localhost ~]# ps -ef|grep sleep root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 4164 950 0 11:01 ? 00:00:00 sleep 60 root 4174 3642 0 11:01 pts/1 00:00:00 grep --color=auto sleep 成功刪除[root@localhost ~]# ps -ef|grep sleep root 4185 3642 0 11:02 pts/1 00:00:00 grep --color=auto sleep
3.監控進程活動
IO負載
負載數屬於全局計數器計算,是所有CPU的總和數。
由於從睡眠返回的任務可能會重新調度到不同的CPU,難以精確的每CPU計數,但累計數的準確度可以保障。
顯示的平均負載代表所有的CPU。
顯示負載值,實施監控
[root@localhost ~]# top
1.查看負載 [root@localhost ~]# uptime 11:12:36 up 45 min, 2 users, load average: 0.06, 0.01, 0.20 2.顯示負載值,實施監控 [root@localhost ~]# top top - 11:15:03 up 47 min, 2 users, load average: 0.00, 0.00, 0.16 Tasks: 328 total, 1 running, 327 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st MiB Mem : 804.8 total, 67.5 free, 474.7 used, 262.5 buff/cache MiB Swap: 2048.0 total, 1427.5 free, 620.5 used. 196.8 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3884 root 20 0 0 0 0 I 0.3 0.0 0:00.57 kworker+ 4404 root 20 0 64856 4880 4008 R 0.3 0.6 0:00.17 top 1 root 20 0 245372 7252 4356 S 0.0 0.9 0:03.43 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par+ 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker+ 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_perc+ 9 root 20 0 0 0 0 S 0.0 0.0 0:00.24 ksoftir+ 10 root 20 0 0 0 0 I 0.0 0.0 0:00.35 rcu_sch+ 11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migrati+ 12 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdo+ 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmp+ 16 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungta+ 說明按m t l [root@localhost ~]# top 不顯示 按1 顯示cpu信息
4.實時進程監控
top用於實現全屏動態顯示系統信息
//top命令交互式子命令: M //根據駐留內存大小進行排序,默認根據CPU百分比排序 P //根據CPU使用百分比進行排序 T //根據累計時間(占據CPU時長)進行排序 l //是否顯示平均負載和啟動時間 t //是否顯示進程和CPU狀態相關信息 m //是否顯示內存相關信息 c //是否顯示完整的命令行信息 q //退出top命令 k //終止某個進程 1 //顯示所有CPU的信息 s //修改刷新時間間隔 us //表示用戶空間; sy //表示內核空間; ni //表示調整nice值,CPU占用的比率; id //表示空閑百分比; wa //表示等待IO完成所占據的時間百分比; hi //表示hard interrupt,硬件中斷占據的時間百分比; si //表示軟中斷占據的時間百分比; st //表示steal,被虛擬化技術偷走的時間(比如運行虛擬機) PR //優先級 NI //nice值 VIRT //虛擬內存集 RES //常駐內存集 SHR //共享內存大小 S //進程狀態
以上就是Linux運維基礎進程管理實時監控控制的詳細內容,更多關於Linux運維進程的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 利用 trap 在 docker 容器優雅關閉前執行環境清理的方案
- 淺談Linux信號機制
- Linux常用命令之性能命令
- Redis swap空間(虛擬內存)的使用詳解
- Linux高級篇學習手冊(一)