Linux 进程管理
2020-03-26 本文已影响0人
Manfestain
- 在Linux中,每个执行程序(代码)都称为一个进程,每个进程都分配一个ID号。
- 每一个进程都有一个父进程,而这个父进程可以复制多个子进程(例如www服务器)。
- 每个进程都可能以两种方式存在:前台和后台。前台进程就是用户目前屏幕上可以进行操作的;后台进程则是实际在操作的,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
1. 显示系统执行的进程
ps:查看目前系统中有哪些正在执行,以及它们的执行情况。
- 命令选项:
-a:显示当前终端所有进程信息
-u:以用户的格式显示进程信息
-x:显示后台进程运行的参数 - 显示的信息选项:
PID:进程识别号
TTY:终端机号
TIME:此进程消耗CPU时间
CMD:正在执行的命令或进程名
- 查看某个服务的进程:
ps -aux | grep xxx
例如:查看有没有sshd服务 --->ps -aux | grep sshd- 查看某个进程的父进程:
ps -ef | more
PPID:表示父进程编号,0表示没有父进程
2. 终止进程
kill [选项] 进程号:通过进程进程号杀死进程
-9:表示强迫进程立即停止
killall 进程名称:通过进程名称杀死进程,支持通配符
应用实例:
- 踢掉某个非法登录的用户
ps -aux | grep sshd
kill 用户进程ID - 终止远程登录服务,在适当的时候再启用sshd服务
ps -aux | grep sshd
kill sshd进程ID - 终止多个gedit编辑器
killall gedit - 强制杀掉一个进程
kill -9 终端进程ID
查看进程树
pstree [选项]:查看进程个父进程
-p:显示进程的PID
-u:显示进程的所属用户
3. 服务(service)管理
服务本质就是进程,但是是在后台运行的,通常都会监听某个端口,等待其它进程的请求(例如mysql、sshd和防火墙等),因此又被称为守护进程。
service 服务名 [start | stop | restart | reload | status]
在CentOS7.0以后,不再使用
service,而是使用systemctl
- 关闭或启用防火墙后立即成效(可以使用
telnet ip 端口测试某个端口的可用性)。 - 这种方式是临时生效,系统重启后会恢复至强的设置。
- 如果希望永久生效,使用
chkconfig指令。
查看所有服务
- 使用
setup指令查看 - 查看
/etc/init.d/文件 --->ls -l /etc/init.d/
修改服务的运行级别
编辑vi /etc/inittab
chkconfig指令
通过chkconfig命令可以给各个运行级别设置自启动/关闭
-
chkconfig --list | grep xxx:查看服务xxx的状态 -
chkconfig 服务名 --list:等价于上面 -
chkconfig --level 5 服务名 [on/off]:给某个服务的运行级别设置自启动
在所有运行级别下关闭防火墙 --->
chkconfig iptables off
chkconfig重新设置后需要reboot机器。
4. 动态监控进程
top和ps指令类似,都是用来显示正在执行的进程。top与ps的不同之处在于top在执行一段时间可以更新正在运行的进程。
基本格式:top [选项]
-d 秒数:指定top命令每隔几秒更新
-i:使top不显示任何闲置或者僵死的进程
-p:通过制定ID来仅仅监控某个进程的状态
交互指令:
P:以CPU使用率排序(默认)
M:以内存的使用率排序
N:以PID排序
q:退出top
5. 查看系统网络情况
netstat [选项]
-an:按照一定顺序排列
-p:显示那个进程在调用
查看服务名为sshd的服务信息 --->
netstat -anp | grep sshd