查看“Linux 进程管理”的源代码
←
Linux 进程管理
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
任务04:进程管理 思考:如何查询指定名字的进程? 如何杀死指定名字的进程? 如何给进程设置优先级?优先级的范围是多少? == 查看进程信息 == === ps命令 === 用途:查看静态的进程统计信息 常用命令选项 <nowiki>a:显示当前终端下的所有进程信息 u:使用以用户为主的格式输出进程信息 x:显示当前用户在所有终端下的进程信息 -e:显示系统内的所有进程信息 -l:使用长格式显示进程信息 -f:使用完整的格式显示进程信息</nowiki> ====查看当前用户在当前控制台上启动的进程==== [root@localhost memcached-1.4.29]# ps <nowiki>PID TTY TIME CMD 9280 pts/1 00:00:00 bash 10151 pts/1 00:00:00 ps</nowiki> *PID:表示进程号,系统根据这个编号处理相应的进程。 *TTY:表示登陆的终端号。 *TIME:表示该进程消耗的cpu时间。 *CMD:表示正在执行的命令或进程。 查看当前控制台上进程的详细信息: [root@localhost memcached-1.4.29]# ps -l <nowiki>F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 9280 9273 0 80 0 - 27090 wait pts/1 00:00:00 bash 4 R 0 10156 9280 0 80 0 - 26494 - pts/1 00:00:00 ps</nowiki> *F:该进程状态的标记。 *S:进程状态代码。 *UID:进程执行者的ad号。 *PPID:父进程的标识符。 *PRI:进程执行的动态优先级。 *NI:进程执行的静态优先级。 *SZ:进程占用内存空间的大小,以kb为单位。 ====静态显示每位用户的所有进程==== (ps aux 或 ps -ef): [root@localhost ~]# ps aux <nowiki>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 2648 604 ? S Apr02 0:13 init [3] root 2 0.0 0.0 0 0 ? SN Apr02 0:00 [ksoftirqd/0] root 3 0.0 0.0 0 0 ? S< Apr02 0:19 [events/0] root 4 0.0 0.0 0 0 ? S< Apr02 0:00 [khelper]</nowiki> USER:该进程是由哪个用户产生的。 PID:进程的 ID。 %CPU:该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。 %MEM:该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。 VSZ:该进程占用虚拟内存的大小,单位为 KB。 RSS:该进程占用实际物理内存的大小,单位为 KB。 TTY:该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。 STAT:进程状态。常见的状态有以下几种: -D:不可被唤醒的睡眠状态,通常用于 I/O 情况。 -R:该进程正在运行。 -S:该进程处于睡眠状态,可被唤醒。 -T:停止状态,可能是在后台暂停或进程处于除错状态。 -W:内存交互状态(从 2.6 内核开始无效)。 -X:死掉的进程(应该不会出现)。 -Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。 -<:高优先级(以下状态在 BSD 格式中出现)。 -N:低优先级。 -L:被锁入内存。 -s:包含子进程。 -l:多线程(小写 L)。 -+:位于后台。 START:该进程的启动时间。 TIME:该进程占用 CPU 的运算时间,注意不是系统时间。 COMMAND:产生此进程的命令名。 参考:https://blog.51cto.com/u_15127651/4293512 ====查找指定用户的进程==== [root@ecs-c6f9 ~]# ps -u root <nowiki>PID TTY TIME CMD 1 ? 00:00:01 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 rcu_gp 4 ? 00:00:00 rcu_par_gp 6 ? 00:00:00 kworker/0:0H-events_highpri 8 ? 00:00:00 kworker/u4:0-events_unbound 9 ? 00:00:00 mm_percpu_wq 10 ? 00:00:00 ksoftirqd/0</nowiki> ====查找指定进程==== 注意,虽然-aux参数可以提供最详尽的信息,但是有时并不是很容易找出所需的信息,因此,系统管理员常常配合grep命令的使用,以缩小查看范围。 ps aux | grep 进程关键字 <nowiki>[fly@localhost memcached-1.4.29]$ ps aux |grep fly Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ root 10171 0.0 0.0 161352 1860 pts/1 S 06:32 0:00 su fly fly 10173 0.0 0.0 108360 1796 pts/1 S 06:32 0:00 bash fly 10187 0.0 0.0 108084 1100 pts/1 R+ 06:33 0:00 ps -aux fly 10188 0.0 0.0 103264 848 pts/1 S+ 06:33 0:00 grep fly</nowiki> === top命令 === 用途:动态显示所有进程,并显示排名 这个命令与ps命令很相似,都是用来显示目前系统正在执行的进程,但是与ps命令最大的不同是,它在执行后会于指定的时间间隔来更新显示的信息,因此它可以动态的监督系统性能。 [root@localhost ~]# top <nowiki>top - 06:08:48 up 4 days, 6:57, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 0.7% sy, 0.0% ni, 97.4% id, 0.4% wa, 0.1% hi, 1.1% si Mem: 191228k total, 171424k used, 19804k free, 19436k buffers Swap: 265064k total, 1284k used, 263780k free, 120480k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6779 root 16 0 2536 832 668 R 3.8 0.4 0:00.04 top 1 root 16 0 2648 604 520 S 0.0 0.3 0:13.54 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0</nowiki> *按P键根据CPU占用情况对进程列表进行排序 *按M键根据内存占用情况进行排序 *按N键根据启动时间进行排序 *按h键可以获得top程序的在线帮助信息 *按q键可以正常退出top程序 *按k结束进程(9:强制结束进程) *按r修改优先级(NI) *使用空格键可以强制更新进程状态显示 === pgrep命令 === 用途:根据特定条件查询进程PID信息 常用命令选项: <nowiki>-l:列出进程的名称 -U:根据进程所属的用户名进行查找 -t:根据进程所在的终端进行查找</nowiki> <nowiki>[root@localhost ~]# pgrep "init" 1 [root@localhost ~]# pgrep -l "log" 2538 syslogd 2541 klogd 3221 login [root@maxin ~]# pgrep -l -U root -t tty1 2315 Xorg </nowiki> === pstree命令 === 用途:以树型结构显示各进程间的关系 常用命令选项: <nowiki>-p:列出进程的PID号 -u:列出进程对应的用户名 -a:列出进程对应的完整命令</nowiki> [root@localhost ~]# pstree -aup <nowiki>init,1 ├─acpid,2866 ├─atd,3060 ├─auditd,2516 │ ├─python,2518 /sbin/audispd │ └─{auditd},2517 ├─automount,2842</nowiki> == 终止进程的运行 == === Ctrl+C组合键 === 中断正在执行的命令 === kill、killall命令 === kill用于终止指定PID号的进程 killall用于终止指定名称的所有进程 -9 选项用于强制终止 <nowiki>[root@ecs-c6f9 ~]# ps aux| grep "123" root 1813 0.0 0.1 25652 5472 pts/0 T 14:14 0:00 vi 123.txt root 1816 0.0 0.0 12136 1088 pts/0 R+ 14:16 0:00 grep --color=auto 123 [root@ecs-c6f9 ~]# kill -9 1813 </nowiki> === pkill命令 === Linux pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。 kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。 语法 pkill [选项] name 参数说明: <nowiki>name : 进程名 选项包含如下几个参数: -U:根据进程所属的用户名终止相应进程 -o 仅向找到的最小(起始)进程号发送信号 -n 仅向找到的最大(结束)进程号发送信号 -P 指定父进程号发送信号 -g 指定进程组 -t 指定开启进程的终端</nowiki> 实例 pkill -9 php-fpm //结束所有的 php-fpm 进程 <nowiki>[root@localhost ~]# w | grep -v "root" 14:10:10 up 6:08, 4 users, load average: 0.00, 0.01, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT teacher tty1 - 14:04 5:34 0.16s 0.16s -bash hackli pts/1 173.17.17.174 14:05 4:32 0.17s 0.17s -bash [root@localhost ~]# pkill -9 -t pts/1 [root@localhost ~]# w | grep -v "root" 14:12:22 up 6:10, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT teacher tty1 - 14:04 7:46 0.16s 0.16s -bash</nowiki> == 进程的前后台调度 == === jobs命令 === jobs命令用于显示Linux中的任务列表及任务状态,包括后台运行的任务。 <nowiki>[root@localhost memcached-1.4.29]# find / -name password123 & [root@localhost memcached-1.4.29]# jobs -l [2]+ 10295 Done find / -name password123</nowiki> === Ctrl+Z 组合键 === 将当前进程挂起 [root@localhost memcached-1.4.29]# vi 123.txt [1]+ Stopped vi 123.txt ===bg命令=== 这个命令可以将挂起的前台作业切换到后台运行。 <nowiki>[root@localhost memcached-1.4.29]# bg 1 [1]+ vi 123.txt &</nowiki> ===fg命令=== 这个命令可以把后台作业调入前台运行。 我们可以把刚才做要好唯一的作业切换到前台,继续执行。 [root@localhost ~]# fg 1</nowiki> ==设置进程的优先级== 在linux中,每个进程在执行时都会被赋予使用cpu的优先等级。优先等级越高,系统提供较多的cpu使用时间,需要较短的执行时间,反之则需要较长的执行时间,因此如有特殊的需求,可以使用nice和renice命令来自行设置进程执行的优先级。 一般进程执行时的优先等级范围为-20 ~19 ,其中-20等级最高,而19的等级最低。 ===nice命令=== 格式:nice [-优先级数值] 命令 功能:用指定的优先级来启动指定进程。 以下通过六个不同优先等级的命令来说明nice命令的使用方法。 没有使用nice命令,优先级为0;使用nice命令,优先级默认为10;使用nice命令,指定范围在-20~19之间,根据实际值,最大不超过-20~19 <nowiki>[root@localhost memcached-1.4.29]# vi & [1] 10336 #以优先等级0在后台执行vi程序 [root@localhost memcached-1.4.29]# nice vi & [2] 10337 #以优先等级10在后台执行vi程序 [1]+ Stopped vi [root@localhost memcached-1.4.29]# nice -50 vi & [3] 10338 [2]+ Stopped nice vi #以优先等级19在后台执行vi程序 [root@localhost memcached-1.4.29]# nice -18 vi & [4] 10340 [3]+ Stopped nice -50 vi #以优先等级18在后台执行程序 [root@localhost memcached-1.4.29]# nice --18 vi & [5] 10342 [4]+ Stopped nice -18 vi #以优先等级-18在后台执行程序 [root@localhost memcached-1.4.29]# nice --50 vi & [6] 10343 [5]+ Stopped nice --18 vi #以优先等级-20在后台执行vi程序 [root@localhost memcached-1.4.29]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 9280 9273 0 80 0 - 27090 wait pts/1 00:00:00 bash 0 T 0 10336 9280 0 80 0 - 29282 signal pts/1 00:00:00 vi 0 T 0 10337 9280 0 90 10 - 29282 signal pts/1 00:00:00 vi 0 T 0 10338 9280 0 99 19 - 29282 signal pts/1 00:00:00 vi 0 T 0 10340 9280 0 98 18 - 29282 signal pts/1 00:00:00 vi 4 T 0 10342 9280 0 62 -18 - 29282 signal pts/1 00:00:00 vi 4 T 0 10343 9280 0 60 -20 - 29282 signal pts/1 00:00:00 vi 4 R 0 10344 9280 0 80 0 - 26494 - pts/1 00:00:00 ps </nowiki> ===renice命令=== 格式:renice 优先级数值 参数 renice -15 2564 renice -6 -g student == 桌面环境下监视系统 == 通过系统监视器可以实现对CPU、硬盘、内存和交换分区的实时监视 返回 [[Linux基础]]
返回至
Linux 进程管理
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息