进程管理

一.什么是进程
进程就是系统未完成并且正在进行的工作/正在运行中的程序
二.进程的状态
1.R:running,程序正在运行中
2.S:sleep,目前处于睡眠状态,相当与系统的一个优化过程,可以被唤醒
3.D:不可被唤醒的睡眠状态,通常进程在等待I/O的情况
4.Z:Zomble,僵尸状态,程序已经终止但却无法被移除至内存外
5.T:停止状态,可能是在工作控制(背景暂停)或除错状态
三.查看进程
1.图形查看方式
gnome-system-monitor
2.进程查看命令
(1) ps ##当前环境下运行的进程
ps -a ##在当前程序运行的进程,不包含环境信息

 [root@localhost Desktop]# ps -a
 PID TTY          TIME CMD
2149 pts/0    00:00:00 ps

ps -A ##所有进程

[root@localhost Desktop]# ps -A
PID TTY          TIME CMD
  1 ?        00:00:01 systemd
  2 ?        00:00:00 kthreadd
  3 ?        00:00:00 ksoftirqd/0
  4 ?        00:00:00 kworker/0:0
  5 ?        00:00:00 kworker/0:0H
  6 ?        00:00:00 kworker/u2:0
  7 ?        00:00:00 migration/0
  8 ?        00:00:00 rcu_bh
  9 ?        00:00:00 rcuob/0
 10 ?        00:00:00 rcu_sched
 11 ?        00:00:00 rcuos/0
 12 ?        00:00:00 watchdog/0
 13 ?        00:00:00 khelper

ps -u ##显示进程用户信息
root 用户

[root@localhost Desktop]# ps -u   root用户
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       589  1.5  1.6 183012 31076 tty1     Ss+  05:42   0:04 /usr/bin/Xorg :
root      2112  0.0  0.1 116260  2836 pts/0    Ss   05:44   0:00 /bin/bash
root      2315  0.0  0.0 123356  1324 pts/0    R+   05:47   0:00 ps -u

student 用户

[root@localhost Desktop]# su - student
Last login: Sun Mar 31 05:48:12 EDT 2019 on pts/0
[student@localhost ~]$ ps -u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
student   2497  0.3  0.1 116144  2752 pts/0    S    05:53   0:00 -bash
student   2532  0.0  0.0 123356  1312 pts/0    R+   05:53   0:00 ps -u

ps a ##在当前环境中运行的信息

 [root@localhost Desktop]# ps a  ##超级用户下查看
  PID TTY      STAT   TIME COMMAND
  589 tty1     Ss+    0:15 /usr/bin/Xorg :0 -background none -verbose -auth /run
 2112 pts/0    Ss     0:00 /bin/bash
 2577 pts/0    R+     0:00 ps a
[root@localhost Desktop]# su - student  ##普通用户下查看
Last login: Sun Mar 31 05:53:13 EDT 2019 on pts/0
[student@localhost ~]$ ps a
  PID TTY      STAT   TIME COMMAND
  589 tty1     Ss+    0:16 /usr/bin/Xorg :0 -background none -verbose -auth /run
 2112 pts/0    Ss     0:00 /bin/bash
 2587 pts/0    S      0:00 su - student
 2588 pts/0    S      0:00 -bash
 2624 pts/0    R+     0:00 ps a

注意:当前环境的运行信息与用户无关,可以看出在超级用户下和普通用户下当前环境的运行信息完全相同
ps x ##列出系统中所有运行包含tty输出设备;没有输出设备的则不显示

[student@localhost ~]$ ps x
  PID TTY      STAT   TIME COMMAND
 2588 pts/0    S      0:00 -bash
 2744 pts/0    R+     0:00 ps x

ps f ##显示进程的父子关系/从属关系(当关闭父进程仍运行的子程进程则由系统初始程序管理。这些子进程称为孤儿进程)

[root@localhost Desktop]# ps f
  PID TTY      STAT   TIME COMMAND
 2112 pts/0    Ss     0:00 /bin/bash
 2794 pts/0    R+     0:00  \_ ps f  ##bash的子进程
  589 tty1     Ss+    0:23 /usr/bin/Xorg :0 -background none -verbose -auth /run

ps e ##显示进程呢个的详细信息
(2)ps常用组合:
ps aux ##显示系统中所有进程并显示进程的用户

[root@localhost Desktop]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.3  52328  6488 ?        Ss   05:42   0:02 /usr/lib/system
root         2  0.0  0.0      0     0 ?        S    05:42   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    05:42   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   05:42   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    05:42   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    05:42   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    05:42   0:00 [rcuob/0]
root        10  0.0  0.0      0     0 ?        R    05:42   0:00 [rcu_sched]
root        11  0.0  0.0      0     0 ?        S    05:42   0:00 [rcuos/0]
root        12  0.0  0.0      0     0 ?        S    05:42   0:00 [watchdog/0]
root        13  0.0  0.0      0     0 ?        S<   05:42   0:00 [khelper]
root        14  0.0  0.0      0     0 ?        S    05:42   0:00 [kdevtmpfs]
root        15  0.0  0.0      0     0 ?        S<   05:42   0:00 [netns]
root        16  0.0  0.0      0     0 ?        S<   05:42   0:00 [writeback]
root        17  0.0  0.0      0     0 ?        S<   05:42   0:00 [kintegrityd]
root        18  0.0  0.0      0     0 ?        S<   05:42   0:00 [bioset]
root        19  0.0  0.0      0     0 ?        S<   05:42   0:00 [kblockd]
root        20  0.0  0.0      0     0 ?        S    05:42   0:00 [khubd]

ps ef ##显示进程详细信息并显示进程父子关系

 [root@localhost Desktop]# ps ef
  PID TTY      STAT   TIME COMMAND
 2112 pts/0    Ss     0:00 /bin/bash XDG_VTNR=1 SSH_AGENT_PID=1662 XDG_SESSION_I
 2868 pts/0    R+     0:00  \_ ps ef XDG_VTNR=1 XDG_SESSION_ID=1 SSH_AGENT_PID=1
  589 tty1     Rs+    0:28 /usr/bin/Xorg :0 -background none -verbose -auth /run 

ps ax ##显示当前系统所有进程
pstree ##显示大概前系统进程树
(3)显示进程指定信息
ps -o xxx ##显示进程的指定信息
ps comm ##进程名称

[root@localhost Desktop]# ps -o comm
COMMAND
bash
ps

ps user ##进程所有人

[root@localhost Desktop]# ps -o user
USER
root
root

ps group ##进程所有组

[root@localhost Desktop]# ps -o group
GROUP
root
root 

ps %cpu ##进程cpu使用率

[root@localhost Desktop]# ps -o %cpu
%CPU
0.0
0.0

ps %mem ##进程内存使用率

[root@localhost Desktop]# ps -o %mem
%MEM
0.1
0.0

ps pid ##进程id

[root@localhost Desktop]# ps -o pid
 PID
2112
2991 

ps nice ##进程优先级

[root@localhost Desktop]# ps -o nice
NI
 0
 0

ps -o ##可以同时显示多个进程

[root@localhost Desktop]# ps -o pid,%cpu,comm
PID %CPU COMMAND
2112  0.0 bash
3031  0.0 ps

(4)进程的排序
ps ax --sort=+%cpu |-%cpu |+%mem |-%men<将进程cpu由小至大排列|由大至小排列|将进程内存使用率由小至大排列|由大至小排列>
eg:查看所有进程ID并显示内存使用量最高的前5个

[root@localhost Desktop]# ps ax -o pid --sort=-%mem|head -n 6|tail -n 5
 1770
  589
 2402
 1837
 1705   

(5)stat中显示的信息
S 进程状态
s 顶级进程
l 内存锁定空间
N 优先级低
<优先级高
+前台运行
ps ax -o stat 查看进程的状态
3.进程优先级
(1)进程优先级范围
-20~19 ##数字越小 优先级越高。
(2)优先级的查看
ps ax -o nice 查看进程的优先级
```
PID NI COMMAND

1   0 systemd
2   0 kthreadd
3   0 ksoftirqd/0
5 -20 kworker/0:0H
7   - migration/0
8   0 rcu_bh
9   0 rcuob/0

(3)指定某个优先级开启的进程
nice -n 优先级数字 进程名 ## 在打开这个进程的同时 指定其优先级
eg:nice -n 5 vim ##打开vim,并指定其优先级为-5
renice -n 优先级数字 进程pid数字 ##已经存在的进程的优先级被修改。
eg:renice -n -5 9 ##改变9的进程优先级为-5

[root@localhost Desktop]# renice -n -5 9
9 (process ID) old priority 0, new priority -5

4.环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
crtl +z ##把占用终端的进程打入后台
fg jobsnum ##把后台进程调回前台 "jobsnum"后台进程排列数
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行 “&”后台运行符号
(进程名称eg:firefox)
1806
[1]+ firefox &
[kiosk@foundation6 ~]$ firefox &
[2] 13822
[kiosk@foundation6 ~]$ fg 1
firefox
^Z
[1]+ Stopped firefox
[2] Done firefox
5.进程信号
(1)常用的信号等级
1 ##进程重新加载配置(在不关闭进程的情况下)
2 ##删除进程在内存中的数据
3 ##删除鼠标在进程中的数据
9 ##强行结束单个进程(不能被阻塞,强制关闭针对僵尸进程)
15 ##正常关闭进程 (可能会被阻塞,出现进程不会被关闭现象)
18 ##运行暂停的进程
19 ##暂停某个进程(不能被阻塞,关闭所有进程)
20 ##把进程打入后台(把进程打入后台,可能会出现阻塞,会有选择性关闭进程)
(2)信号命令的调用
man 7 signal ##查看信号详细信息
Signal Value Action Comment

──────────────────────────────────────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
Manual page signal(7) line 117 (press h for help or q to quit
kill - 信号等级 进程pid ##给进程发送信号
killall -信号等级 进程名字(vim)
pkill -u student -信号等级 ##在student用户下给进程发送信号
6.进程的动态监控
top ##可以看到所有进程
执行top命令显示的界面为
在这里插入图片描述
按1 ##显示cpu每个核的负载
按s ##调整刷新频率(输入需要调整的频率,回车,则调整成功)
在这里插入图片描述
按c ##cpu负载排序
按m ##内存使用量排序
按h ##查看帮助
按u ##查看指定用户的进程
按k ##对指定进程发起信号
按q ##退出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值