linux命令-进程(服务)管理

1. ps

process,查看瞬间进程状态(查看实时进程用top命令),ps支持3种格式的命令
1) Unix风格,选项以-开头。
2) BSD风格,选项不能以-开头。
3) GNU长选项,选项以–开头。

3种格式的命令可以混用,但可能会出现冲突。灵活使用各选项可以显示自己想要的输出。

缺省情况下,ps选择所有与当前用户具有相同有效用户ID(euid = EUID)且与调用者位于同一终端关联的进程。 它显示进程ID(pid = PID),与进程关联的终端(tname = TTY),以[DD-] hh:mm:ss格式(time = TIME)累积的CPU时间和可执行文件名称(ucmd = CMD)。 默认情况下,输出未排序。

hollowman@hollowman-F117:~$ ps
  PID TTY          TIME CMD
40964 pts/3    00:00:00 bash
40970 pts/3    00:00:00 ps

常用选项梳理

#Unix风格选项
 -A, -e                显示所有进程
 -a                    显示所有TTY值存在的进程,除去bash和TTY终端等进程
 -u                    显示有效的用户,当后面跟<UID>时含义同-U。
 -d                    显示所有进程,除去bash和TTY终端等进程
 -F                    完整格式
 -f                    完整格式,包含命令行

#BSD风格选项
  a                    显示所有TTY值存在的进程,包括其他用户
  u                    面向用户的格式,其输出会包含用户名字段

#含义相同的选项
 -x, x                 显示没有控制终端的进程,默认一般不显示没有控制终端的进程
 -t, t/T, --tty <tty>  显示与指定终端关联的进程
 -p, p, --pid <PID>    显示指定进程编号的进程
 -r, r                 显示运行进程
 -w, w                 不限制输出宽度,默认不显示超出设备宽度以外的输出。
 -U, U, --user <UID>   显示指定用户的进程

#含义相近的选项
 -l, l                 显示长格式/BSD长格式
 -j, j                 显示工作格式/BSD工作格式

进程状态:

  • R(运行): 进程正在运行或在运行队列中等待。
  • S(中断): 进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
  • D(不可中断): 进程不响应系统异步信号,即便用kill命令也不能将其中断。
  • Z(僵死): 进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
  • T(停止): 进程收到停止信号后停止运行
  • N: 低优先级
  • <: 高优先级
  • L: 被锁进内存
  • s: 包含子进程
  • l: 多线程

常用输出格式
1.打印所有进程信息
ps -ef
ps aux #ps auxg和ps –e u输出效果相同

2.打印进程树
ps -ejH
ps axjf

3.打印线程信息
ps -eLf
ps axms

2.top

动态显示进程

top命令前5行动态显示系统运行总体参数:

  • 第1行:系统时间、运行时间、登录终端数、系统负载(3个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
  • 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
  • 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比、…。
  • 第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
  • 第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
hollowman@hollowman-F117:~$ top

top - 08:22:14 up 29 min,  1 user,  load average: 0.30, 0.38, 0.29
任务: 369 total,   1 running, 364 sleeping,   2 stopped,   2 zombie
%Cpu(s):  2.5 us,  1.1 sy,  0.0 ni, 96.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15927.6 total,   9434.5 free,   2515.6 used,   3977.5 buff/cache
MiB Swap:  16384.0 total,  16384.0 free,      0.0 used.  12548.7 avail Mem 

 进程 USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND 
 8116 hollowm+  20   0 2625220 170932 112556 S  11.6   1.0   1:32.42 Web Content
 1217 root      20   0 1305940 124032  79068 S   9.3   0.8   0:53.46 Xorg
 2115 hollowm+  20   0 3432152 128492  95312 S   6.6   0.8   0:27.11 ukui-kwin_x11
 2813 hollowm+  20   0  610712  79224  59364 S   4.0   0.5   0:07.34 mate-terminal 
 7654 hollowm+  20   0 5857576 807552 509932 S   4.0   5.0   1:11.70 firefox
 1916 hollowm+   9 -11 1412544  19728  14980 S   2.0   0.1   0:29.13 pulseaudio 
 2826 hollowm+  20   0 2224664  70504  30216 S   1.7   0.4   0:28.18 kylin-kmre-apps  
  410 root      19  -1  119080  47784  46228 S   1.3   0.3   0:23.46 systemd-journal 
.......

3. pstree

process tree,显示进程树。

几个常用选项

  -s, --show-parents  显示所选进程的父进程
  -t, --thread-names  显示完整的线程名称,默认不显示线程名称(只显示线程数量)
  -c, --compact-not   不对完全相同的子树进行压缩
  -p, --show-pids     显示 PID;隐含启用 -c 选项
  -a, --arguments     显示命令行参数
  -V, --version       显示版本信息

实例:

#显示进程树,默认从pid为1的进程开始,也就是systemd进程。
hollowman@hollowman-F117:~$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─acpid
        ├─agetty
        ├─avahi-daemon───avahi-daemon
        ├─bluetoothServic───{bluetoothServic}
        ... ...

#显示pid为889的进程树(压缩完全相同的子树)
hollowman@hollowman-F117:~$ pstree 889
udisksd───4*[{udisksd}]

#显示pid为889的进程树,且不对完全相同的子树进行压缩
hollowman@hollowman-F117:~$ pstree 889 -c
udisksd─┬─{udisksd}
        ├─{udisksd}
        ├─{udisksd}
        └─{udisksd}

#显示pid为889的进程树,并包含线程名称
hollowman@hollowman-F117:~$ pstree 889 -t
udisksd─┬─{cleanup}
        ├─{gdbus}
        ├─{gmain}
        └─{probing-thread}

#显示pid为889的进程树及进程号
hollowman@hollowman-F117:~$ pstree 889 -p
udisksd(889)─┬─{udisksd}(916)
             ├─{udisksd}(1006)
             ├─{udisksd}(1058)
             └─{udisksd}(1113)

#显示pid为889的进程树及进程号,并显示父进程名及进程号
hollowman@hollowman-F117:~$ pstree -s 889 -p
systemd(1)───udisksd(889)─┬─{udisksd}(916)
                          ├─{udisksd}(1006)
                          ├─{udisksd}(1058)
                          └─{udisksd}(1113)

#显示pid为1543的进程树,并显示命令行参数
hollowman@hollowman-F117:~$ pstree 1543 -a
smbd --foreground --no-process-group
  ├─cleanupd --foreground --no-process-group
  ├─lpqd --foreground --no-process-group
  └─smbd-notifyd --foreground --no-process-group

#显示hollowman用户的进程及其进程树
hollowman@hollowman-F117:~$ pstree hollowman

4.pidof

查询某个指定服务的全部进程的pid值,一个服务对应1至多个进程,但每个进程都只有唯一pid值。
命令语法:pidof [选项] [服务名]

hollowman@hollowman-F117:~$ pidof code  #code是一个代码编辑器的运行程序名
32690 32674 32659 31492 31481 31479 31451 31450 31447

5. kill

终止对应pid值的服务进程
命令语法:kill [选项] [pid]

hollowman@hollowman-F117:~$ kill 31450

6.killall

终止指定服务/程序所对应的所有进程
kill只能杀死1个进程,包含多个进程的服务需要多次使用kill,而killall则可以一次性杀死服务对应的所有进程
命令语法:killall [选项] [服务/程序名]

hollowman@hollowman-F117:~$ killall code   #关闭code程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值