基本介绍
1.在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
3.每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
3. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
基本参数
参数 | 功能 |
---|---|
ps -a | 显示当前终端的所有进程 |
ps -u | 以用户的格式显示进程信息 |
ps -x | 显示后台进程运行的参数 |
ps -e | 显示所有进程 |
ps -f | 以全格式的方式显示 |
显示系统执行的进程
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。
可以不加任何参数.
ps查看所有进程
[root@nyh ~]# ps -aux|more
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 2.7 0.0 19364 1540 ? Ss 13:39 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 13:39 0:00 [kthreadd]
.......
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
用户名 | 进程id | 进程占用CPU的百分比 | 进程占用物理内存的百分比 | 进程占用的虚拟内存大小(单位:KB) | 进程占用的物理内存大小(单位:KB) | 使用的终端 | 进程状态,其中S-睡眠 s-表示该进程是会话的先导进程 N-表示进程拥有比普通优先级更低的优先级 R-正在运行 D-短期等待 Z-僵死进程 T-被跟踪或者被停止等等 |
进程的启动时间 | 占用CPU的总时间 | 启动进程所用的命令和参数 |
ps查看单个进程
[root@nyh ~]# ps -aux | grep sshd
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 2394 0.0 0.0 66236 1196 ? Ss 13:40 0:00 /usr/sbin/sshd
root 2850 0.0 0.2 102084 4156 ? Ss 13:40 0:00 sshd: root@pts/0
root 4581 0.0 0.0 103332 856 pts/0 S+ 17:18 0:00 grep sshd
ps查看所有进程的父进程
下面的3号进程的父进程是2号进程,2号和1号没有父进程,因为他们的PPID为0
[root@nyh ~]# ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:39 ? 00:00:01 /sbin/init
root 2 0 0 13:39 ? 00:00:00 [kthreadd]
root 3 2 0 13:39 ? 00:00:00 [migration/0]
......
ps查看单个进程的父进程
ps -ef|grep xxx
[root@nyh ~]# ps -ef | grep sshd
root 2394 1 0 13:40 ? 00:00:00 /usr/sbin/sshd
root 2850 2394 0 13:40 ? 00:00:00 sshd: root@pts/0
root 4729 2856 0 17:37 pts/0 00:00:00 grep sshd
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU时间
- CMD:启动进程所用的命令和参数
终止进程kill和killall
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该
进程。使用kill命令来完成此项任务。
基本语法:
kill [选项] 进程号
(功能描述:通过进程号杀死进程)
killall 进程名称
(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
常用选项:
-9
:表示强迫进程立即停止
案例:
案例一:踢掉某个非法登录用户(比如踢掉xiaoming)
首先找到这个进程
然后kill掉就可以了
可以看到进程不见了,说明被干掉了
案例二: 终止远程登录服务sshd, 在适当时候再次重启sshd服务
也是先找到然后按照进程号kill掉就可以了
案例三:终止多个gedit 编辑器
案例四:强制杀掉一个终端
先找到终端
查看进程树pstree
基本语法:
pstree [选项]
可以更加直观的来看进程信息
常用选项:
-p
:显示进程的PID
-u
:显示进程的所属用户
案例1:用树状的形式显示进程的pid
案例2:用树状的形式进程的用户id