跟高手学习LINUX笔记-10

第十节Linux进程管理
10.1 进程概述和ps查看进程工具
10.1.1进程的概念
进程:是已启动的可执行程序的运行实例
进程主要有以下特点:进程号、进程状态、进程占用资源、生命周期等
程序:可以执行的二进制文件
父进程与子进程
任何进程都可以生成子进程
对CentOS7操作系统而言,最PID为1的进程是:systemd
对于经常说的僵尸进程:可以理解为父进程先结束了, 但子进程没有回收,还在孤零零的存在

。那么这些子进程就没有父进程来管理了,就变成僵尸进程

10.1.2 进程的属性
进程ID(PID):与UID一样,代表进程的唯一数值
父进程的ID(PPID)
进程状态:
运行R:--running
休眠S:--sleep
僵尸Z:--zombie
进程执行的优先级:可以用nice调整,数值越小优先级越高
进程所连接的终端名
进程资源占用:比如占用资源大小(内存、CPU占用量)
10.1.3 使用ps查看进程工具
1、ps查看进程工具
例1:常用的参数:
a: --all 显示跟当前终端关联的所有进程
u: --user 基于用户的格式显示(U: 显示某用户ID所有的进程)
x: --xshell 显示所有进程,不以终端机来区分
例2:常用的选项组合是 ps -aux
[root@node-1 ~]# ps -aux | less
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 43380 3496 ? Ss Feb04 0:38 /usr/lib/systemd/systemd --

system --deserialize 23
root 2 0.0 0.0 0 0 ? S Feb04 0:00 [kthreadd]
每一列的说明:
USER:执行此进程的用户
PID:进程的ID号
%CPU:占用CPU的百分比
%MEM:占用内存的百分比
STAT:该进程目前的状态
Linux进程有5种基本状态:
R :正在运行--running
S :正在睡眠当中 但可被某些触发而激活--sleep
T :停止--stop
Z?:疆尸进程状态--zombie
D :不可中断状态. ?
例3:另一种显示方式
ps -ef | less
[root@node-1 ~]# ps -ef |less
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Feb04 ? 00:00:38 /usr/lib/systemd/systemd --system --

deserialize 23
root 2 0 0 Feb04 ? 00:00:00 [kthreadd]
root 3 2 0 Feb04 ? 00:00:02 [ksoftirqd/0]

10.1.4通过job管理相关的程序运行
ctrl-c:终止退出一个进程
ctrl-z:挂起一个进程。将作业放置到后台(暂停)--stopping
ctrl-d:不是发送信号,而是表示一个特殊的二进制值,表示 EOF。代表输入完成或者注销
&:表示将程序放入后台运行
;:这个符号连接不同命令,不管前面命令执行是否成功都可以执行后一条
&&:这个符号连接不同命令,前面命令执行成功才可以执行后一条
||:这个符号连接不同命令,前面命令执行不成功才可以执行后一条
例3: job管理程序运行状态
[root@node-1 ~]# cd /opt
[root@node-1 opt]# vim passwd
在vim passwd界面上按下: ctrl+z
[2]+ Stopped vim passwd
用jobs查看在后台是否有程序被挂起
[root@node-1 opt]# jobs
[1]- Stopped vim file2
[2]+ Stopped vim passwd
[root@node-1 opt]# fg 2
又回到vim passwd 这个编辑界面了
1)fg 跟jobs查看的编号:将挂起的程序放在前台运行
2)bg 跟jobs查看的编号:将一个在后台暂停的命令,变成后台继续执行

10.2 uptime查看系统负载与top动态查看进程
10.2.1 uptime查看CPU负载
例4:
[root@node-1 opt]# uptime
22:22:40 up 12 days, 6:59, 1 user, load average: 0.00, 0.01, 0.05
说明:
22:22:40:系统当前时间
up 12 days, 6:59:系统运行了多久
1 user,:当前登录用户
load average: 0.00, 0.01, 0.05:数值分别代表了1分钟、5分钟、15分钟的负载
重要提示:
在此处数值如果单核大于3,则说明CPU负载很高,要考虑加CPU了
如:1核心CPU 此处负载:4.00, 4.01, 3.55 负载大于3,负载高
4核心CPU 此处负载:4.00, 4.01, 3.55 负载小于3(4/4=1),负载不高;当数值为12以上

则就说明负载高了

10.2.2top动态查看进程
[root@node-1 opt]# top
top - 22:31:08 up 12 days, 7:08, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 102 total, 1 running, 100 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1865276 total, 1044224 free, 82224 used, 738828 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1540004 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

 1 root      20   0   43380   3496   2364 S   0.0  0.2   0:38.73 systemd                            

 2 root      20   0       0      0      0 S   0.0  0.0   0:00.33 kthreadd                                   

 3 root      20   0       0      0      0 S   0.0  0.0   0:02.24 ksoftirqd/0                                

 5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H 

这里本着方便您使用的情况下,这个里面的相关概念不再说明了,咱直接进入实际操作
1)P(大写的字母p):会以占用CPU从高到低排列,当看到CPU中的id参数(CPU的空闲率)

为零的话,用此操作看哪个进程占用CPU资源
2)M(大写的字母m):会以占用内存从高到低排列
3)s(小写的字母s):可以调整查看内容刷新频率,默认3秒刷新一次
4)空格:马上刷新
5)q(小写的字母q):退出
6)数字键1:显示每个内核的CPU使用率
例5:找出系统中使用CPU最多的进程
运行top后,按大写的P,可以按CPU使用率来排序显示
[root@node-1 opt]# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

 1 root      20   0   43380   3496   2364 S   0.0  0.2   0:38.74 systemd                            

 2 root      20   0       0      0      0 S   0.0  0.0   0:00.33 kthreadd   

10.2.3 kill关闭进程
kill -9 PID --关闭单个进程
killall sshd --用于杀死指定名字的进程
10.3 screen后台不间断执行命令
说明:笔者维护五台加拿大centos服务器的时候,遇到换机房导数据一系列操作,拷贝数据时

用到此命令完美解决(毕竟国内远程加拿大的服务器断线率比较高)
默认情况下screen命令没有安装,需要安装一下
[root@node-1 opt]# yum -y install screen
[root@node-1 opt]#screen
screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样
[root@node-1 opt]# vim passwd
暂时有事离开一下,可以用以下方法解决
[root@node-1 opt]# 在screen当前窗口键入快捷键Ctrl+a+d(操作说明;(1):ctrl+a同时按 (2)松开后再按d,千万不要同时按)
有这样的提示:[detached from 54160.pts-0.node-1]
[root@node-1 opt]#screen -ls #查看已经建立的会话ID
There is a screen on:
54160.pts-0.node-1 (Detached)
1 Socket in /var/run/screen/S-root.
重新连接会话:
[root@node-1 opt]# screen -r 54160
如果不想运行:
[root@node-1 opt]#exit 就可以

猜你喜欢

转载自blog.51cto.com/450955/2471539
今日推荐