进程管理
一、进程基本介绍
- 在Linux中,每个执行的程序、代码都成为一个进程(process)。每个进程都分配一个ID号。进程与线程的一个简单解释
- 每个进程,都会对应一个父进程,而这而过父进程可以复制多个子进程。
- 每个进程都可能以两种形式存在的。前台和后台,前台进程就是用吗目前屏幕上可以进行的操作;后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且由于屏幕上无法看到进程,通常使用后台方式执行。
二、显示系统执行的进程
ps [选项]
:显示当前进程 (process) 的状态。
选项
参数 | 功能 |
---|---|
-a |
显示当前终端的所有进程信息 |
-u |
以用户的格式显示进程信息 |
-x |
显示后台进程运行的参数 |
-e |
显示所有进程 |
f |
全格式 |
示例
-
查看进程
[root@wcl ~]# ps -aux|more USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2 0.0 0.0 0 0 ? S 4月27 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 4月27 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 4月27 0:00 [kworker/0:0H] ……省略部分结果
注意上面的第二行内容;下面来介绍里面各个列名称的具体含义
-
列名称 含义 USER 用户名称 PID 进程号 %CPU 进程占用CPU的百分比 %MEM 进程占用物理内存百分比 VSZ 进程占用的虚拟内存大小(KB) RSS 进程占用的物理内存大小(KB) TTY 使用的终端 STAT 进程状态;S:睡眠;R:运行等 START 进程的启动时间 TIME CPU时间,即进程使用CPU的总时间 COMMAND 启动进程所用的命令和参数
以全格式显示当前所有的进程,产看进程的父进程
ps -ef | more
[root@wcl ~]# ps -ef |more UID PID PPID C STIME TTY TIME CMD root 3 2 0 4月27 ? 00:00:00 [ksoftirqd/0] root 5 2 0 4月27 ? 00:00:00 [kworker/0:0H] ... ...//省略剩余结果
注意:PID是进程号;PPID:是父进程号
-
查看sshd的进程
-
ps -ef | grep sshd
-
三、终止进程kill和killall
中途想让进程停止,或者因为进程消耗大量系统资源。我们使用kill命令来完成此项任务。
kill [选项] 进程号
:通过进程号杀死进程
killall 进程名称
:通过进程名称杀死进程,也支持通配符
常用选项
选项 | 功能 |
---|---|
-9 |
强迫进程立即停止 |
示例
-
踢掉某非法登录用户
[root@wcl ~]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2 0.0 0.0 0 0 ? S 4月27 0:00 [kthreadd] root 16628 0.0 0.0 150424 5860 ? Ss 17:26 0:00 sshd: root@pts/3 root 16630 0.0 0.0 116316 2908 pts/3 Ss 17:26 0:00 -bash root 16651 0.0 0.0 189604 2364 pts/3 S 17:26 0:00 su jack jack 16652 0.0 0.0 116328 2928 pts/3 S+ 17:26 0:00 bash
注意:我们在这里将用户jack踢掉
-
kill 16651
此时此刻,jack登录窗口会会出现下面这一段话
[jack@wcl root]$ Session terminated, killing shell... ...已杀死。 [root@wcl ~]#
-
强制杀掉终端 199
kill -9 199
四、查看进程树pstree
可以更加直观的查看进程信息;在这里我的系统中暂时没有这个指令,暂且不记录。
待续 ... ...