當前位置:
首頁 >
Linux系统的进程管理
發(fā)布時間:2025/4/16
62
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Linux系统的进程管理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Linux系統(tǒng)的進程管理
- 一、系統(tǒng)進程介紹
- 1.進程概念
- 2.進程特點
- 3.進程類型
- 二、查看系統(tǒng)進程
- 1.PS命令
- 2.查看系統(tǒng)進程
- 3.ps aux結(jié)果說明
- 4.top命令
- ①top命令使用方法
- ② top命令選項
- 5.pgerp命令
- 6.pidof
- 三、signal信號的管理
- 1.signal信號的介紹
- 2.給進程發(fā)送信號
- 3.man 7 signal
- 4.常用信號
- 四、進程的優(yōu)先級
- 1.進程優(yōu)先級介紹
- 2.查看進程優(yōu)先級
- 3.優(yōu)先級修改
- ①當啟動進程時
- ②當啟動進程后
- 五、作業(yè)控制
- 1.后臺運行一個程序
- 2.顯示后臺程序
- 3.停止運行程序
- 4.后臺和前臺恢復(fù)程序
一、系統(tǒng)進程介紹
1.進程概念
進程process是指正在執(zhí)行的程序;是程序正在運行的一個實例。它由程序指令,和從文件、其它程序中讀取的數(shù)據(jù)或系統(tǒng)用戶的輸入組成。
2.進程特點
①進程是加載到內(nèi)存中的一段指令
②進程ID(PID)是唯一標識進程
③子進程集成父進程的屬性信息
3.進程類型
①前臺進程(也稱為交互式進程):這些進程由終端會話初始化和控制。換句話說,需要有一個連接到系統(tǒng)中的用戶來啟動這樣的進程;它們不是作為系統(tǒng)功能/服務(wù)的一部分自動啟動。
②后臺進程(也稱為非交互式/自動進程: 這些進程沒有連接到終端;它們不需要任何用戶輸入。
③守護進程:這是后臺進程的特殊類型,它們在系統(tǒng)啟動時啟動,并作為服務(wù)一直運行;它們不會死亡。它們自發(fā)地作為系統(tǒng)任務(wù)啟動(作為服務(wù)運行)。但是,它們能被用戶通過 init 進程控制。
二、查看系統(tǒng)進程
1.PS命令
#PS 查看進程信息 -a 查看所有終端的進程 -u 打印進程的所有者信息 -x 查看不屬于任何終端的進程 -e 查看系統(tǒng)的所有進程 -f 查看額外的信息 -o 指定格式輸出 --sort 指定排序的參數(shù),例如: --sort=-%mem 按照內(nèi)存大小降序 常用組合為: ps aux 或者 ps -ef2.查看系統(tǒng)進程
[root@node1 ~]# ps aux |head USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.5 176372 10932 ? Ss 15:22 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 17 root 2 0.0 0.0 0 0 ? S 15:22 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 15:22 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 15:22 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 15:22 0:00 [kworker/0:0H-kblockd] root 8 0.0 0.0 0 0 ? I< 15:22 0:00 [mm_percpu_wq] root 9 0.0 0.0 0 0 ? S 15:22 0:00 [ksoftirqd/0] root 10 0.0 0.0 0 0 ? R 15:22 0:00 [rcu_sched] root 11 0.0 0.0 0 0 ? S 15:22 0:00 [migration/0] [root@node1 ~]# ps -ef |head UID PID PPID C STIME TTY TIME CMD root 1 0 0 15:22 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 17 root 2 0 0 15:22 ? 00:00:00 [kthreadd] root 3 2 0 15:22 ? 00:00:00 [rcu_gp] root 4 2 0 15:22 ? 00:00:00 [rcu_par_gp] root 6 2 0 15:22 ? 00:00:00 [kworker/0:0H-kblockd] root 8 2 0 15:22 ? 00:00:00 [mm_percpu_wq] root 9 2 0 15:22 ? 00:00:00 [ksoftirqd/0] root 10 2 0 15:22 ? 00:00:00 [rcu_sched] root 11 2 0 15:22 ? 00:00:00 [migration/0]3.ps aux結(jié)果說明
USER 用戶 PID 進程ID %CPU CPU占用 %MEM 內(nèi)存占用 VSZ 項內(nèi)存申請地址空間 RSS 實際使用內(nèi)存 TTY 使用終端 STAT 進程狀態(tài) START 進程開始時間 TIME 進程持續(xù)時間 進程命令 COMMAND S 休眠 D 不可中斷 R 正在運行 Z 僵尸進程 T 停止 s 子進程 < 高優(yōu)先級 n 低優(yōu)先級 + 后臺進程 I 鎖定進程4.top命令
①top命令使用方法
[root@node1 ~]# top top - 18:47:52 up 3:25, 2 users, load average: 0.61, 0.66, 0.71 Tasks: 237 total, 2 running, 235 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 MiB Mem : 1966.1 total, 854.9 free, 537.0 used, 574.2 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1275.0 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 835 root 20 0 1277568 52788 23924 S 0.7 2.6 0:18.12 containerd 821 zabbix 20 0 710536 30140 15880 S 0.3 1.5 0:55.17 zabbix_agent2 4887 root 20 0 0 0 0 I 0.3 0.0 0:00.01 kworker/0:1-events 1 root 20 0 176372 10932 8104 S 0.0 0.5 0:01.11 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_gp② top命令選項
按鍵盤數(shù)字1,可監(jiān)控每個邏輯CPU狀況 C 切換顯示命令名稱和完整命令行 M 可按內(nèi)存占用情況進程排序 P 根據(jù)CPU使用百分比大小進程排序 T 根據(jù)時間/累計時間進程排序 f 可以選擇顯示的內(nèi)容5.pgerp命令
# pgrep -U 查找摸個用戶的進程ID -G 查找某個組的進程ID -P 根據(jù)父進程ID,查找所有子進程ID -l 不僅打印pid,也打印進程名 -o 表示該程序有多個程序正在運行,則只查招老的,即最先啟動,(多個進程時即父進程PID) -n 表示該程序有多個程序正在運行,則查找最新的 -d 定義多個進程之間的分隔符,如果不定義則使用換行符 [root@node1 ~]# pgrep -l sshd 819 sshd 2882 sshd 2884 sshd 2887 sshd 2905 sshd 3669 sshd 3671 sshd 3673 sshd 3689 sshd6.pidof
[root@node1 ~]# ps -p $(pidof sshd)PID TTY STAT TIME COMMAND819 ? Ss 0:00 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,2882 ? Ss 0:00 sshd: root [priv]2884 ? S 0:00 sshd: root@pts/12887 ? Ss 0:00 sshd: root [priv]2905 ? S 0:00 sshd: root@notty3669 ? Ss 0:00 sshd: root [priv]3671 ? S 0:00 sshd: root@pts/23673 ? Ss 0:00 sshd: root [priv]3689 ? S 0:00 sshd: root@notty [root@node1 ~]#三、signal信號的管理
1.signal信號的介紹
對進程的操作可以通過發(fā)送不同的信號來實現(xiàn)。
2.給進程發(fā)送信號
kill 信號 pid killall 信號 comm pikill [-signal] pattern3.man 7 signal
Signal Value Action Comment──────────────────────────────────────────────────────────────────────SIGHUP 1 Term Hangup detected on controlling terminalor death of controlling processSIGINT 2 Term Interrupt from keyboardSIGQUIT 3 Core Quit from keyboardSIGILL 4 Core Illegal InstructionSIGABRT 6 Core Abort signal from abort(3)SIGFPE 8 Core Floating-point exceptionSIGKILL 9 Term Kill signalSIGSEGV 11 Core Invalid memory referenceSIGPIPE 13 Term Broken pipe: write to pipe with noreaders; see pipe(7)SIGALRM 14 Term Timer signal from alarm(2)SIGTERM 15 Term Termination signalSIGUSR1 30,10,16 Term User-defined signal 1SIGUSR2 31,12,17 Term User-defined signal 2SIGCHLD 20,17,18 Ign Child stopped or terminatedSIGCONT 19,18,25 Cont Continue if stoppedSIGSTOP 17,19,23 Stop Stop processSIGTSTP 18,20,24 Stop Stop typed at terminalSIGTTIN 21,21,26 Stop Terminal input for background processSIGTTOU 22,22,27 Stop Terminal output for background process4.常用信號
signal 15 終止 signal 9 立即終止 signal 1 重讀配置文件 [root@tianyi ~]# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) 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四、進程的優(yōu)先級
1.進程優(yōu)先級介紹
調(diào)度優(yōu)先級決定對CPU的訪問,進程的nice值影響優(yōu)先級。
nice值為-20到19 ,缺省為0,低nice值意味著高CPU優(yōu)先級
2.查看進程優(yōu)先級
[root@node1 ~]# ps -eo pid,comm,nice --sort=-nice |headPID COMMAND NI23 khugepaged 19766 alsactl 1922 ksmd 51 systemd 02 kthreadd 09 ksoftirqd/0 010 rcu_sched 011 migration/0 -12 watchdog/0 -3.優(yōu)先級修改
①當啟動進程時
[root@node1 ~]# nice -n 5 vim file.txt②當啟動進程后
[root@node1 ~]# pidof vim 5330 [root@node1 ~]# ps -eo pid,comm,nice |grep vim5330 vim 0 [root@node1 ~]# renice 5 5330 5330 (process ID) old priority 0, new priority 5 [root@node1 ~]# ps -eo pid,comm,nice |grep vim5330 vim 5五、作業(yè)控制
1.后臺運行一個程序
[root@node1 ~]# firefox & [1] 5397 [root@node1 ~]# Running without a11y support!2.顯示后臺程序
[root@node1 ~]# jobs [1]+ Running firefox &3.停止運行程序
[root@node1 ~]# kill 15 5397 [root@node1 ~]# jobs [1]+ Terminated firefox4.后臺和前臺恢復(fù)程序
[root@tianyi ~]# [root@tianyi ~]# jobs [1]- Running ping www.baidu.com > /dev/null & [2]+ Stopped ping www.jd.com > /dev/null [root@tianyi ~]# bg 2 [2]+ ping www.jd.com > /dev/null & [root@tianyi ~]# jobs [1]- Running ping www.baidu.com > /dev/null & [2]+ Running ping www.jd.com > /dev/null & [root@tianyi ~]# fg 2 ping www.jd.com > /dev/null ^Z [2]+ Stopped ping www.jd.com > /dev/null [root@tianyi ~]# jobs [1]- Running ping www.baidu.com > /dev/null & [2]+ Stopped ping www.jd.com > /dev/null 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Linux系统的进程管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统的日志管理
- 下一篇: Linux基础之网络配置