进程的基本介绍与查看进程
- 基本介绍
Linux中,每个执行的程序都称为一个进程,每个进程都有一个唯一的ID号
每个进程都会有一个父进程,这个父进程可以有多个子进程
每个进程都可能以两种方式存在,前台与后台
一般系统的服务都是以后台的方式存在并常驻于系统中 - 查看进程
- 使用命令
ps -aux
,可以查看到进程的用户、进程ID、CPU占用情况、内存占用情况等消息
-a 显示当前终端所有进程信息
-u 以用户的格式显示进程信息
-x 显示后台进程运行的参数 - 可以结合grep指令,查看指定的进程
使用命令ps -aux | grep 进程名字
例如:ps -aux | grep sshd
- 查看父进程
使用命令ps -e
,可以查看到进程的PID、父进程的PPID
例如查询sshd服务的父进程,可以使用ps -ef | grep sshd
- 使用命令
中止进程
- 基本语法
kill [-9] 进程号
或者killall 进程名称
选项-9表示立即停止进程
kill all命令支持通配符的使用 - 操作实例
- 踢掉某个使用sshd登录的非法登录用户
首先找到登录的用户的进程号:ps -aux | grep sshd
然后kill 进程号
- 终止多个gedit编辑器,使用killall:
killall gedit
- 强制杀掉一个终端
首先找到终端的进程号:ps -aux | grep bash
这里注意,进程名称为 /bin/bash 的就是终端
然后kill -9 进程号
,这里必须要带上-9参数
- 踢掉某个使用sshd登录的非法登录用户
服务管理
服务的本质就是进程,但是是在后台运行的(例如sshd、防火前、MySQL)
通常会监听某个端口,等待其他程序的请求,所以又称为守护进程
- 服务管理指令
service 服务名 [start | stop | restart | reload | status]
,相应选项的作用看英文就知道了
在CentOS 7之后,改成systemctl [start | stop | restart | reload | status] 服务名
注意,使用该方法更改的服务状态在下次重启系统后,不再保留 - 查看服务名
方式1:终端输入setup
命令,然后选择系统服务就可以看到
方式2:终端输入ls -l /etc/init.d/
,就可以查看系统服务
监控服务
-
动态监控进程
top命令,可以动态显示正在执行的进程
语法:top [-] [d delay] [q] [c] [S] [s] [i] [n] 进程号
参数说明:
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top -
监控系统网络状态
netstat命令,用于显示网络状态
语法:netstat [-an][-p]
参数说明:
-an:按一定顺序排列输出
-p:显示哪个进程在调用
实例:查看服务名为sshd的服务信息
输入:netstat -anp | grep sshd