进程的基本介绍
1.在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。
2.每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。
3.每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进
行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
4.一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
ps -aux | more
ps 指令详解
指令:ps -aux | grep XXX
•System V 风格展示
•USER:用户名称
•%CPU:进程占用 CPU 的百分比
•%MEM:进程占用物理内存的百分比
•VSZ:进程占用的虚拟内存大小(单位:KB)
•RSS:进程占用的物理内存大小(单位:KB)
•TT:终端名称,缩写 .
•STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
•STARTED:进程的启动时间
•TIME:CPU 时间,即进程使用 CPU 的总时间
•COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
应用实例
以全格式显示当前所有的进程,查看进程的父进程
ps -ef 是以全格式显示当前所有的进程
-e 显示所有进程 -f 全格式
ps -ef | grep xxx
•是 BSD 风格
•UID:用户 ID
•PID:进程 ID
•PPID:父进程 ID
•C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会
降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
•STIME:进程启动的时间
•TTY:完整的终端名称
•TIME:CPU 时间
•CMD:启动进程所用的命令和参数
思考:查看 sshd 进程的父进程号是多少
ps -ef | grep ssed
终止进程 kill 和 killall
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。
使用 kill 命令来完成此项任务
kill [选项] 进程号(功能描述:通过进程号杀死进程)
常用选项: kill -9 xxx :表示强迫进程立即停止
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变
得很慢时很有用)
示例
案例 1:踢掉某个非法登录用户
ps -aux | grep sshd
#root 55674 0.0 0.2 160992 5572 ? Ss 15:51 0:00 sshd: zhouqiang [priv]
#zhouqia+ 55679 0.0 0.1 160992 2372 ? S 15:51 0:00 sshd: zhouqiang@pts/1
kill 55679
案例 2: 终止远程登录服务 sshd, 在适当时候再次重启 sshd 服务
ps -aux | grep sshd
#root 1191 0.0 0.2 112900 4308 ? Ss 14:36 0:00 /usr/sbin/sshd -D
kill 1191
查看状态:
systemctl status sshd.service
启动服务:
systemctl start sshd.service
重启服务:
systemctl restart sshd.service
开机自启:
systemctl enable sshd.service
案例 3: 终止多个 gedit 编辑器 【killall , 通过进程名称来终止进程】
在init 5界面模式中打开多个终端执行gedit
killall gedit 全部终止了
案例 4:强制杀掉一个终端
ps -aux | grep bash
#root 806 0.0 0.0 115408 948 ? S 14:36 0:00 /bin/bash /usr/sbin/ksmtuned
#root 56081 0.0 0.1 116324 2792 pts/0 Ss 16:18 0:00 -bash
#zhouqia+ 57618 0.0 0.1 116452 2884 pts/4 Ss+ 16:25 0:00 -bash
#root 57775 0.0 0.0 112828 976 pts/0 S+ 16:27 0:00 grep --color=auto bash
kill 57618 无效
kill -9 57618 强制关闭
查看进程树 pstree
pstree [选项] ,可以更加直观的来看进程信息
-p:显示进程的PID
-u: 显示进程的所属用户
1.树状的形式显示进程的 pid
pstree -p
2.树状的形式进程的用户 id
pstree -u