第四章 Linux系统进程管理服务

什么是进程?

进程的生命周期

进程状态

静态查看进程信息

ps -> process status

  • -e     显示所有进程
  • -f     显示所有字段(UID,PPIP,C,STIME字段)
  • -a     显示一个终端的所有进程
  • -u     显示当前用户进程和内存使用情况
  • -x     显示没有控制终端的进程
  • –sort     按照列名排序
  • ps -ef:查看所有进程
  • ps -aux:查看所有进程
  • ps -ef | grep tomcat:查看指定进程

grep: Gloabal Search Regular Expression and Print out the line,意为全局搜索正则表达式并打印文本行。

ps aux 查看进程信息

[root@localhost tmp]# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.2  0.8 106824 16296 ?        Ss   21:11   0:01 /usr/lib/systemd/systemd rhgb --switched-root --system
root           2  0.0  0.0      0     0 ?        S    21:11   0:00 [kthreadd]

USER:运行进程的用户

PID:进程ID

%CPU:CPU占用率

%MEM:内存占用率

VSZ:占用虚拟内存

RSS:占用实际内存

TTY:进程运行的终端

STAT:进程状态 R:运行  S:休眠的进程  T :停止的进程 Z :僵尸进程 X:死掉进程

START:进程的启动时间

TIME:CPU占用的时间 秒

COMMAND:进程文件进程名字

 

ps aux --sort %cpu 进程排序

ps a

ps aux --sort %cpu
[root@localhost tmp]# ps aux --sort %cpu
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.8 106824 16156 ?        Ss   21:11   0:01 /usr/lib/systemd/systemd rhgb --switched-root --system
root           2  0.0  0.0      0     0 ?        S    21:11   0:00 [kthreadd]

[root@localhost tmp]# ps aux --sort -%cpu | head -5
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        1801  1.1 15.8 3571116 312012 ?      Ssl  21:12   0:21 /usr/bin/gnome-shell
root        1952  0.3  0.4 240748  9816 ?        Ss   21:12   0:06 /usr/libexec/sssd/sssd_kcm --uid 0 --gid 0 --logger=files
root        1377  0.2 10.5 779036 207012 ?       Ssl  21:11   0:03 /usr/libexec/packagekitd
root         588  0.1  0.0      0     0 ?        I    21:11   0:02 [kworker/0:4-mpt_poll_0]
[root@localhost tmp]# 

ps -ef| head -5 查看父进程

ps -ef| head -5 查看父进程
 [root@localhost tmp]# ps -ef| head -5
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 21:11 ?        00:00:01 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root           2       0  0 21:11 ?        00:00:00 [kthreadd]
root           3       2  0 21:11 ?        00:00:00 [rcu_gp]
root           4       2  0 21:11 ?        00:00:00 [rcu_par_gp]
[root@localhost tmp]# 

ps axo user,pid,command | head -5 自定义展示column

ps axo user,pid,command | head -5
 [root@localhost tmp]# ps axo user,pid,command | head -5
USER         PID COMMAND
root           1 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root           2 [kthreadd]
root           3 [rcu_gp]
root           4 [rcu_par_gp]
[root@localhost tmp]# 

动态查看进程信息

[root@localhost tmp]# top
top - 21:55:41 up 44 min,  2 users,  load average: 0.87, 0.34, 0.14
Tasks: 224 total,   1 running, 223 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  0.7 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
MiB Mem :   1924.1 total,     62.5 free,   1407.4 used,    634.5 buff/cache
MiB Swap:   2048.0 total,   2041.4 free,      6.5 used.    516.7 avail Mem 

top - 21:55:41 up 44 min 2 users load average: 0.87, 0.34, 0.14  
程序名 系统时间 运行时间 登录用户数 CPU负载 1分钟之内平均消耗CPU占比 5 15分钟  
Tasks: 224 total, 1 running 23 sleeping 0 stopped 0 zombie      
  总进程数 运行数 休眠进程数 停止状态进程数 僵尸进程数      
%Cpu(s) 2.0 us 0.7 sy 0.0 ni 97.0 id 0.0 wa 0.0 hi 0.3 si 0.0 st
CPU使用占比 us用户登录之后占用bi 系统用户 ni优先级 id空闲时间占比 wa等待时间占比 hi硬件 si软件 st虚拟机
MiB Mem 1924.1 total 62.5 free 1407.4 used 634.5 buff/cache        
物理内存                

[root@localhost tmp]# top// 回车立刻刷新 按 z彩色显示 按 F 通过光标设置

[root@localhost tmp]# top -d 1 每秒刷新一次

[root@localhost tmp]# top -d 1 -p 10126 查看指定进程动态信息 

[root@localhost tmp]# top -d 1 -p 10126,1 查看多个进程信息

使用信号控制进程

信号种类

[root@localhost ~]# kill -l  kill -l 展示所有信号

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


1) SIGHUP 重新加载配置
2) SIGINT 键盘中断Ctrl+C
3) SIGQUIT 键盘退出Ctrl+\,类似SIGINT
9) SIGKILL 强制终止,无条件
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 暂停
20) SIGTSTP 键盘暂停Ctrl+Z

信号9,15

kill -15 3881
[root@localhost ~]# ps aux |grep vim
root        3881  0.0  0.4 229804  9472 pts/1    S+   22:50   0:00 vim file1
root        3917  0.1  0.4 229804  9580 pts/2    S+   22:51   0:00 vim file2
root        3936  0.0  0.1 221680  2360 pts/0    S+   22:51   0:00 grep --color=auto vim
[root@localhost ~]# kill -15 3881
[root@localhost ~]#



[root@localhost ~]# tty
/dev/pts/1
[root@localhost ~]# vim
[root@localhost ~]# vim file1
Vim: Caught deadly signal TERM
Vim: preserving files...
Vim: Finished.
kill -9 3917
 [root@localhost ~]# kill -9 3917
[root@localhost ~]# 


iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii已杀死
[root@localhost ~]# 
                           

进程优先级nice

ps axo pid,command,nice --sort=-nice | head -10 查看前10条的process

[root@localhost ~]# ps axo pid,command,nice --sort=-nice | head -10
    PID COMMAND                      NI
     33 [khugepaged]                 19
    800 /usr/sbin/alsactl -s -n 19    -
     32 [ksmd]                        5
    765 /usr/libexec/rtkit-daemon     1
      1 /usr/lib/systemd/systemd rh   0
      2 [kthreadd]                    0
     11 [kworker/u256:1-events_unbo   0
     12 [rcu_tasks_kthre]             0
     13 [rcu_tasks_rude_]             0

 

& 后台启动

[root@localhost ~]# sleep 8000 &
[3] 3026

 

 

[root@localhost ~]# ps axo pid,command,nice --sort=-nice | grep sleep
   3012 sleep 6000                    0
   3017 sleep 7000                    0
   3026 sleep 8000                    0
   3059 grep --color=auto sleep       0
[root@localhost ~]# 

改变优先级

[root@localhost ~]# nice -n -5 sleep 7000 &
[4] 3091
[root@localhost ~]# ps axo pid,command,nice --sort=-nice | grep sleep
   3012 sleep 6000                    0
   3017 sleep 7000                    0
   3026 sleep 8000                    0
   3097 grep --color=auto sleep       0
   3091 sleep 7000                   -5

 renice -20 3012 重置优先级

[root@localhost ~]# renice -20 3012
3012 (process ID) 旧优先级为 0,新优先级为 -20
[root@localhost ~]# ps axo pid,command,nice --sort=-nice | grep sleep
   3017 sleep 7000                    0
   3026 sleep 8000                    0
   3152 grep --color=auto sleep       0
   3091 sleep 7000                   -5
   3012 sleep 6000                  -20
[root@localhost ~]#

 

 jobs 查看后台进程

[root@localhost ~]# jobs
[1]   运行中               sleep 6000 &
[2]   运行中               sleep 7000 &
[3]-  运行中               sleep 8000 &
[4]+  运行中               nice -n -5 sleep 7000 &

 

 fg 4 把4号任务放到前台

[root@localhost ~]# fg 4
nice -n -5 sleep 7000

Ctrl + Z 是将当前前台任务放到后台但是是暂停状态

^Z
[4]+  已停止               nice -n -5 sleep 7000
[root@localhost ~]# jobs
[1]   运行中               sleep 6000 &
[2]   运行中               sleep 7000 &
[3]-  运行中               sleep 8000 &
[4]+  已停止               nice -n -5 sleep 7000
[root@localhost ~]# 

 

 bg 再次将进程在后台运行起来

[root@localhost ~]# bg 4
[4]+ nice -n -5 sleep 7000 &
[root@localhost ~]# jobs
[1]   运行中               sleep 6000 &
[2]   运行中               sleep 7000 &
[3]-  运行中               sleep 8000 &
[4]+  运行中               nice -n -5 sleep 7000 &
[root@localhost ~]#

 

 kill %4 把4号任务杀掉

[root@localhost ~]# kill %4
[4]+  已终止               nice -n -5 sleep 7000
[root@localhost ~]# jobs
[1]   运行中               sleep 6000 &
[2]-  运行中               sleep 7000 &
[3]+  运行中               sleep 8000 &

 

 

  ls /proc/ 查看所有进程PID

[root@localhost ~]# ls /proc/
1     1802  2     2362  37   550  71   777         cgroups        meminfo
10    1832  2001  24    38   551  72   779         cmdline        misc
1099  1839  2002  25    39   552  721  78          consoles       modules

 

 # cat /proc/cpuinfo 查看CPU信息

[root@localhost ~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 142
model name	: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz

 # cat /proc/meminfo 查看内心信息

[root@localhost ~]# cat /proc/meminfo
MemTotal:        1970292 kB
MemFree:           69296 kB
MemAvailable:     586092 kB

 # cat /proc/cmdline 查看内核信息

[root@localhost ~]# cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.14.0-362.el9.x86_64 root=/dev/mapper/cs-root ro resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rhgb quiet

 

posted @ 2023-09-16 11:31  代码改编自己  阅读(49)  评论(0)    收藏  举报