- 在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
网友评论