原创

linux 进程管理


十三、进程管理

程序:静态的,是躺在硬盘上。

进程:动态的,程序运行在内存中就是进程。

线程:进程的不同执行路径。

每个进程都可能以两种方式存在的。前台和后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

1、查看当前系统中哪些进程正在执行

ps  【选项】
1

PS -aux执行后,参数含义 在这里插入图片描述

参数 含义

USER 用户

PID 进程号

%CPU 执行命令时候进程占用的CPU

%MEM 执行命令时候进程占用的CPU

VSZ 进程占用虚拟内存的大小(单位kb)

RSS 进程占用物理内存的大小(单位kb)

TTY 终端机号

STAT 运行状态

R: 正在运行

S:睡眠

D:短期等待

T:被跟踪或者被停止

Z:僵死进程(进程可能死掉,没有释放)

s:该进程是会话的先导进程

+:该进程为前台进程

l:该进程是多线程进程

N:低优先级进程

<:高优先级进程

[]:表示这个一个内核线程

START 执行开始的时间

TIME 进程消耗cpu的时间

COMMAND 进程名,执行该进程的指令

全格式显示所有进程,查看父进程:ps -ef

UID:用户名

PPID:父进程

C : CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低; 数值越小,表明进程是I/O密集型运算,执行优先级会提高

STIME:进程启动时间

CMD:启动进程所用命令和参数

其余和上面一样

选项功能
-a显示当前终端的所有进程信息
-u以用户的格式显示进程信息
-x显示后台进程运行的参数
-e显示所有进程
-f全格式

2、终止进程

kill 【选项】 进程号

killall 进程名称

常用选项:-9:强迫进程立即停止

3、查看进程树

pstree 【选项】 常用选项 -p :显示进程的PID -u :显示进程的所属用户

4、服务管理

service管理指令

service 服务名 [start I stop | restart | reload | status] 在CentOS7.0后很多服务不再使用service ,而是systemctl 查看服务名 查看全部系统服务:setup

带*号的服务是自动启动的,光标移至 * 号,按空格就会删除,按tab键进行切换。 在这里插入图片描述 查看service指令管理的服务:ls -l /etc/init.d

5、指定运行级别

CentOS7后运行级别说明 指定运行级别:init 数字0-6,常用运行级别是3和5

级别说明

0:关机 1:单用户(找回丢失密码用) 2:多用户状态无网络 3:多用户状态有网络 4:系统未使用保留给用户 5:图形界面 6:虚拟机重启

在/etc/initab进行了简化, 如下: multi-user.target: analogous to runlevel 3 graphical.target : analogous to runlevel 5

查看当前的运行级别是什么:systemctl get-default

修改运行级别:systemctl set-default multi-user.target

6、chkconfig指令

查看服务:chkconfig --list [| grep xxx]

给服务在指定的运行级别下设置开关:chkconfig --level 5 服务名 on/off

注意:使用了chkconfig指令服务自启或关闭,需要reboot重启生效

7、systemctl指令

语法:systemctl 服务名 [start I stop | restart | reload | status]

查看管理的服务:ls -l /usr/lib/systemd/system

systemctl设置服务的自启动状态

  1. systemctl list-unit-files [ I grep服务名] (查看服务开机启动状态)
  2. systemctl enable 服务名(设置服务开机启动)
  3. systemctl disable 服务名(关闭服务开机启动)
  4. systemctl is-enabled 服务名(查询某个服务是否是自启动的)

例:查看当前防火墙的状况,关闭防火墙和启动防火墙

1.systemctl status firewalld.service

2.systemctl stop firewalld.service

3.systemctl start firewalld.service

8、防火墙

在这里插入图片描述

防火墙打开情况下,xshell6访问Linux需要打开22端口号,不然访问不到。防火墙关闭后,xshell6可以直接访问,不需要打开端口号。

打开或者关闭指定端口 在真正的生产环境,往往需要将防火墙打开,但此时外部请求数据包却不能跟服务器监听端口通讯。这时需要打开指定的端口,比如80、22、 3306等。

firewall指令

打开端口:

firewall-cmd --permanent --add-port=端口号/协议

关闭端口:

firewall-cmd --permanent --remove-port=端口号/协议

重新载入才能生效:

firewall-cmd --reload

查看所有开放端口:

firewall-cmd --zone=public --list-port

查询端口是否开放:

firewall-cmd --query-port=端口/协议

9、动态监控进程

top与ps命令相似,都是用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。

指令:top 【选项】

选项功能
-d 秒速指定top命令每隔几秒更新,默认3秒
-i使top不显示任何闲置或者僵死进程
-P通过指定监控进程ID来仅仅监控某个进程的状态

在这里插入图片描述

交互操作说明

操作功能
P以CPU使用率排序,从大到小,默认就是此项
M以内存的使用率排序,从大到小
N以PID排序,从大到小
Q或q退出top

例1:监视特定用户,比如我们监控tom用户 top命令下,输入“u"回车,再输入用户名,输错可按向下键清空。 例2 :终止指定的进程 top命令下,输入"k"回车,再输入要结束的进程ID号

教程