1. 进程基本介绍
1. 在LINUX中,每个**执行的程序**都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。
进程和程序的关系:每个运行到内存的程序都变成了一个进程
2. 每个进程都可能以两种方式存在的。**前台与后台**,所谓前台进程就是用户目前的屏幕上可以进行操作
的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
3. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
2. 显示系统执行的进程
1. 基本介绍:
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数
2. ps详解
ps-a:显示当前终端的所有进程信息
ps-u:以用户的格式显示进程信息
ps-x:显示后台进程运行的参数
[root@localhost100 ~]# ps -aux
[root@localhost100 ~]# ps -aux | more
ps -aux |grep xxx:查看指定程序的进程
比如我看看有没有sshd服务指令说明
[root@localhost100 ~]# ps -aux |grep sshd
root 1183 0.0 0.2 112900 4312 ? Ss 16:20 0:00 /usr/sbin/sshd -D
root 2775 0.0 0.2 156776 5524 ? Ss 16:21 0:00 sshd: root@pts/0
root 3387 0.0 0.0 112828 976 pts/0 S+ 16:48 0:00 grep --color=auto sshd
[root@localhost100 ~]#
3. ps显示的信息选项
System V展示风格
USER:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
TTY:终端名称,缩写.
STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,
R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 STARTED:进程的启动时间
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
3. 父子进程
父进程:指已创建一个或多个子进程的进程
子进程:子进程为由另外一个进程(对应称之为父进程)所创建的进程
父子进程的关系: 一个进程可能下属多个子进程,但最多只能有1个父进程,而若某一进程没有父进程,则可知该进程很可能由内核直接生成。
ps-ef 是以全格式显示当前所有的进程 -e显示所有进程。-f全格式
命令:ps -ef grep xxx
[root@localhost100 ~]# ps -ef |grep sshd
root 1183 1 0 16:20 ? 00:00:00 /usr/sbin/sshd -D
root 2775 1183 0 16:21 ? 00:00:00 sshd: root@pts/0
root 3709 2779 0 17:03 pts/0 00:00:00 grep --color=auto sshd
[root@localhost100 ~]#
[root@localhost100 ~]# ps -ef |more
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
4. 终止进程kill和killall
1. 若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kil命令来完成此项任务。
2. 基本语法
kill「选项] 进程号(功能描述:通过进程号杀死进程)
killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
常用选项
-9:表示强迫进程立即停止
案例1:踢掉某个非法登录用户
查看marry用户登录的进程号
[root@localhost100 ~]# ps -aux | grep sshd
root 1183 0.0 0.2 112900 4348 ? Ss 16:20 0:00 /usr/sbin/sshd -D
root 4798 0.1 0.2 156776 5528 ? Ss 17:48 0:00 sshd: root@pts/2
root 4901 0.7 0.2 156776 5464 ? Ss 17:50 0:00 sshd: marry [priv]
marry 4905 0.0 0.1 156776 2420 ? S 17:50 0:00 sshd: marry@pts/3
root 4997 0.0 0.0 112828 976 pts/4 S+ 17:51 0:00 grep --color=auto sshd
[root@localhost100 ~]# kill 4901
进程终止后用户也就退出了
案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务案例
[root@localhost100 ~]# ps -aux | grep sshd
root 1183 0.0 0.2 112900 4348 ? Ss 16:20 0:00 /usr/sbin/sshd -D
root 4798 0.0 0.2 156776 5528 ? Ss 17:48 0:00 sshd: root@pts/2
root 5346 0.0 0.0 112828 976 pts/4 S+ 18:05 0:00 grep --color=auto sshd
[root@localhost100 ~]# kill 1183
重启服务:/bin/systemctl start.service
3:终止多个gedit
[root@localhost100 ~]# killall gedit
案例4:强制杀掉一个终端
5. 查看进程树pstree
基本语法
pstree [选项],可以更加直观的来看进程信息
常用选项
p:显示进程的PID
-u :显示进程的所属用户
应用实例:
案例
1:请你树状的形式显示进程的pid案例
[root@localhost100 ~]# pstree -p
2:请你树状的形式进程的用户id
[root@localhost100 ~]# pstree -p
2:请你树状的形式进程的用户id
[root@localhost100 ~]# pstree -up