Centos7-系统进程管理

1.进程的概述和ps进程管理

1.1什么是进程?

  • 进程是已启动的可执行程序的运行实例,进程有以下组成部分:
    • 已分配内存的地址空间
    • 安全属性,包括所有权凭据个特权
    • 程序代码的一个或多个执行进程
    • 进程状态
  • 进程与程序区分
    • 程序:二进制文件,静态。
    • 进程:是程序运行的过程,动态,有生命周期及运行状态。
    • 进程的属性:
    • 进程ID(PID):是唯一的值,用来区分进程
    • 父进程(PPID)
    • 启动进程的用户ID(UID)和所归属的组(GID)
    • 进程状态:分为运行R,休眠S,僵尸Z
    • 进程执行的优先级
    • 进程所连接的终端名
    • 进程资源占用:如内存、CPU等

1.2ps查看进程工具

  • 常用参数:
a 显示跟当前终端关联的所有进程
u 基于用户的格式显示
x 显示所有进程,不以终端机来区分
[root@liang test]# ps aux|head 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 126268  6820 ?        Ss   18:42   0:02 /usr/lib/systemd/systemd --system --deserialize 15
root          2  0.0  0.0      0     0 ?        S    18:42   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    18:42   0:00 [ksoftirqd/0]
root          6  0.0  0.0      0     0 ?        S    18:42   0:02 [kworker/u256:0]
root          7  0.0  0.0      0     0 ?        S    18:42   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    18:42   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    18:42   0:00 [rcuob/0]
root         10  0.0  0.0      0     0 ?        S    18:42   0:00 [rcuob/1]
root         11  0.0  0.0      0     0 ?        S    18:42   0:00 [rcuob/2]
###最后一列[xxx]使用方括号括起来的进程是内核态的进程,没有括起来的是用户态进程。
USER 启动这些进程的用户
PID 进程的PID
%CPU 进程占用CPU的百分比
%MEM 进程占用内存的百分比
VSZ 进程占用的虚拟内存大小(KB)
RSS 进程占用的物理内存的大小(KB)
START 该进程被触发的时间
TIME 该进程实际使用CPU运作的时间
COMMAND 该程序使用的指令
STAT 该程序目前的状态,linux进程有五种基本状态:
	R 该程序目前正在工作,或者是可被运作
	S 该进程目前正在睡眠中,可被某些讯号唤醒
	T 该程序目前正在侦测或者是停止了
	Z 该进程应该已经被终止,但是其父程序却无法正常终止他,造成僵尸进程
	D 不可中断状态
	五个基本状态后的小状态:
		< 表示进程运行在高优先级上
		N 表示进程运行在低优先级上
		L 表示进程有页面锁定在内存中
		s 表示进程是控制进程
		l 表示进程是多线程
		+ 表示当前进程运行在前台

2.uptime查看系统负载

[root@liang ~]# uptime 
 07:57:48 up 74 days, 11:32,  1 user,  load average: 0.00, 0.00, 0.00

07:57:48 系统当前时间
up 74 days 11:32 系统运行时间,说明此服务器连续运行74天11个小时32分
1 user 当前登录用户
load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。三个数值
分别为 1分钟、五分钟、十五分钟前到现在的平均值。
如果服务器的CPU为1核心,则load average中的数字>=3负载过高。

3.top动态管理进程

top - 08:13:21 up 74 days, 11:48,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 110 total,   1 running, 109 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    520132k total,   231980k used,   288152k free,    74504k buffers
Swap:   135164k total,        0k used,   135164k free,   100248k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                 
26253 root      20   0  2752 1908 1672 R  0.3  0.4   0:00.08 top                     
    1 root      20   0  2964 2248 2060 S  0.0  0.4   0:01.05 init                    
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                
    4 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/0:0H            
    6 root      20   0     0    0    0 S  0.0  0.0   0:28.64 ksoftirqd/0             
    7 root      20   0     0    0    0 S  0.0  0.0   0:25.59 rcu_sched   
第二行:
Tasks: 110 total 总进程数为110
1 running 正在运行的进程数
109 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
第三行:
0.0%us 系统用户进程使用CPU百分比
0.0%sy 内核中的进程占用CPU百分比
0.0%ni 用户进程空间内改变过优先级的进程占用CPU百分比
100.0%id 空闲的CPU百分比
0.0%wa CPU等待I/O完成的时间总量
0.0%hi 硬中断占比
0.0%si 软中断占比
0.0%st 虚拟机占用物理的时间,例如物理机运行了KVM,则表示KVM占用物理机的CPU时间
第四、五行:
Mem:520132k total 物理内存总量
231980k used 使用的物理内存总量
288152k free 空闲内存总量
74504k buffers 内核缓存内存量
Swap:135164k total 交换分区总量
0k used 使用的交换分区总量
135164k free 空闲交换分区总量
100248k cached 可利用内存总量
top快捷键:
默认三秒刷新一次,按s修改刷新时间
空格:立即刷新
q:退出
P;按CPU排序按CPU排序
M:按内存排序
T:按时间排序
数字1:显示每个内核的CPU使用率
u/U:指定显示的用户
h:帮助
参数:
-p top -p 进程号,查看某个进程状态

4.查看进程正在读哪些文件

  • 命令:
    • lsof 用于查看进程打开的文件,打开文件的进程,进程打开的端口
  • 参数:
-i 条件 列出符合条件的进程
-p 进程号 列出指定进程号所打开的文件
[root@liang ~]# lsof -p 1459
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
shadowsoc 1459 root  cwd    DIR    8,2     4096    2 /
shadowsoc 1459 root  rtd    DIR    8,2     4096    2 /
shadowsoc 1459 root  txt    REG    8,2  3465924  162 /usr/bin/shadowsocks-server
shadowsoc 1459 root    0r   CHR    1,3      0t0 7086 /dev/null
shadowsoc 1459 root    1w   CHR    1,3      0t0 7086 /dev/null
shadowsoc 1459 root    2u   CHR    5,1      0t0 7094 /dev/console
shadowsoc 1459 root    3u  IPv6  12930      0t0  TCP *:mdqs (LISTEN)
shadowsoc 1459 root    4u  0000   0,11        0 7083 anon_inode

5.前后台进程切换

5.1前台进程与后台进程的区别

  • 前台进程:是在终端运行的命令,那么该终端就为进程的控制终端,一旦这个终端关闭,这个进程也随之消失
  • 后台进程:也叫守护进程(daemon),是运行在后台的一种特殊进程,不受终端控制,他不需要终端交互,linux的大多数服务器就是守护进程实现的。例如web服务http

5.2相关命令

& 用在一个命令的最后,可以吧这个命令放到后台执行
crtl+z 将一个正在前台执行的命令放到后台,并且暂停
jobs 查看当前有多少在后台运行的进程,它是一个作业控制命令
fg 将后台中的命令调至前台继续运行
bg 将一个在后台暂停的命令,变成继续执行

6.关闭进程

  • 命令:
kill 进程号: 关闭单个进程
killall与pkill :用于杀死指定名字的进程
通过信息的方式来控制进程,kill -l可以查看所有支持的信号
[root@liang ~]# 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 键盘中断
3) SIGQUIT 退出
9) SIGKILL 强制终止
15) SIGTERM 终止(正常结束)
18) SIGCONT 继续
19) SIGSTOP 停止
20) SIGTSTP 暂停
例:
指定pid
[root@liang ~]# kill -9 1343
指定服务名
[root@liang ~]# pkiil sshd
[root@liang ~]# killall sshd
7.进程优先级管理
优先级范围(-20至19),越小优先级越高,默认优先级是0
命令:
nice 指定程序运行的优先级
格式:nice -n command
renice 改变程序运行的优先级
格式:renice -n pid

例:修改vi的优先级为5
[root@liang ~]# nice -n 5 vi aa
修改为10
[root@liang ~]# renice -10 17757 
17757 (process ID) old priority 5, new priority -10

7.screen会话管理

  • 假如晚上需要备份数据,在crl上直接执行备份脚本或者加&放到后台运行是否可以?
    关了crt后,脚本还在后台执行吗?
  • 答;crt长时间连接,如果本地网络偶尔断开或不小心关闭,都会让后台的脚本停止运行。
    正确做法是使用:screen
  • srceen中有会话概念,用户可以在一个screen会话中创建多个窗口,在每一个窗口中就像操作一个
    真实的telnet/ssh连接窗口那样。
安装screnn
[root@liang ~]# yum install screen -y
新建一个test的screen会话
[root@liang ~]# screen -S test
[root@liang ~]# vi test.txt
aaaa
bbbb
cccc
写入数据,不退出,按住Ctrl+a+c,然后exit
列出当前所有的会话
[root@liang ~]# screen -ls
There is a screen on:
        17960.test      (Attached)
1 Socket in /var/run/screen/S-root.
回到test的screen会话
[root@liang ~]# screen -r test
aaaa
bbbb
cccc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值