Linux命令:常用进程查看命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令:常用进程查看命令相关的知识,希望对你有一定的参考价值。
常用进程查看命令:
内核 kernel: 0-99:内核调整的
init: 100-139:用户可控制
O: O(1) O(n) O(logn) O(n^2) O(2^n)
init: 进程号为1
1. 进程管理命令一:ps
ps: Process State 1. SysV风格:- 2. BSD风格:
a: 所有与终端有关的进程
u: 该进程是由哪个用户启动的
x: 所有与终端无关的进程
[[email protected] 1]# ps ax | head -6
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 init [5] STAT表示进程状态
2 ? S< 0:00 [migration/0] TIME表示实际使用CPU时间
3 ? SN 0:00 [ksoftirqd/0] COMMAND表示命令
4 ? S< 0:00 [migration/1]
5 ? SN 0:00 [ksoftirqd/1] ?表示和终端无关
4024 tty2 Ss+ 0:00 /sbin/mingetty tty2
4025 tty3 Ss+ 0:00 /sbin/mingetty tty3
[[email protected] 1]# ps aux | head -6
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 10348 692 ? Ss Apr28 0:01 init [5] 此进程的有效用户
root 2 0.0 0.0 0 0 ? S< Apr28 0:00 [migration/0] 内核进程
root 3 0.0 0.0 0 0 ? SN Apr28 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< Apr28 0:00 [migration/1]
root 5 0.0 0.0 0 0 ? SN Apr28 0:00 [ksoftirqd/1]
root 4024 0.0 0.0 3792 488 tty2 Ss+ Apr28 0:00 /sbin/mingetty tty2
root 4025 0.0 0.0 3792 488 tty3 Ss+ Apr28 0:00 /sbin/mingetty tty3
VSZ:Virtual Memory Setisor 虚拟内存集
RSS:Resident memory Set 常驻内存集
TTY:TeleTYpe 包括虚拟控制台,串口以及伪终端设备
COMMAND:哪个命令启动的该进程,有中括号[*]的进程为内核进程
进程的分类:
跟终端相关的进程
跟终端无关的进程
STAT进程状态:
D:不可中断的睡眠(Non interrupted sleep)
R:运行或就绪(run)
S:可中断的睡眠(sleep)
T:停止(stop)
Z:僵死(zombie)
<: 高优先级进程
N: 低优先级进程
+: 前台进程组中的进程
l : 多线程进程
s : 会话进程首进程
ps (SysV风格)
-elF
-ef
-eF
[[email protected] 1]# ps -el |head -6
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 75 0 - 2587 - ? 00:00:01 init
1 S 0 2 1 0 -40 - - 0 migrat ? 00:00:00 migration/0
1 S 0 3 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0
1 S 0 4 1 0 -40 - - 0 migrat ? 00:00:00 migration/1
1 S 0 5 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/1
[[email protected] 1]# ps -elF |head
F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD
4 S root 1 0 0 75 0 - 2587 - 692 5 Apr28 ? 00:00:01 init [5]
1 S root 2 1 0 -40 - - 0 migrat 0 0 Apr28 ? 00:00:00 [migration/0]
1 S root 3 1 0 94 19 - 0 ksofti 0 0 Apr28 ? 00:00:00 [ksoftirqd/0]
1 S root 4 1 0 -40 - - 0 migrat 0 1 Apr28 ? 00:00:00 [migration/1]
1 S root 5 1 0 94 19 - 0 ksofti 0 1 Apr28 ? 00:00:00 [ksoftirqd/1]
UID :linux用户身份证明(User Identification)的缩写
PRI: (priority) 优先级
PID : (process ID number) 进程的id号
PPID:(parent process ID number) 进程的父进程的id号
NI :(nise) nise值
SZ:(size) size值
RSS:(Resident memory Set) 常驻内存集
PSR:(Processor) 正常运行的CPU编号
STIME:(Start Time) 正常运行的CPU编号
ps -o [PROPERTY1], [PROPERTY2] 显示前台进程
ps -o pid,comm,ni
[[email protected] 1]# ps -o pid,comm,ni #显示前台进程的pid,comm,ni
PID COMMAND NI
15045 bash 0
15512 ps 0
[[email protected] 1]# ps -axo pid,comm,ni #显示所有进程pid,comm,ni
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.7/FAQ
PID COMMAND NI
1 init 0
2 migration/0 -
3 ksoftirqd/0 19
4 migration/1 -
5 ksoftirqd/1 19
6 migration/2 -
7 ksoftirqd/2 19
....
[[email protected] 1]# ps aux |grep "bash"
root 13721 0.0 0.0 66052 1524 tty1 Ss+ May01 0:00 -bash
root 15045 0.0 0.0 66172 1668 pts/0 Ss 04:29 0:00 -bash
root 15553 0.0 0.0 61116 628 pts/0 S+ 08:03 0:00 grep bash
2. 进程管理命令二:pstree、pgrep、pidof
pstree: 显示当前系统上的进程树
pgrep:pgrep -u root bash ( -u:euid -U:uid )
pidof: 根据程序名称,查找其相关进程的ID号;
[[email protected] 1]# pstree |head -6
init-+-acpid
|-atd #父进程删除后子进程也一起被删除
|-auditd-+-audispd---{audispd}
| `-{auditd}
|-automount---4*[{automount}]
|-avahi-daemon---avahi-daemon
[[email protected] 1]# pgrep -u root bash
13721
15045
18591
[[email protected] 1]# pidof bash
18591
3. 进程管理命令三:top
top - 08:28:16 up 9 days, 4:27, 4 users, load average: 0.00, 0.00, 0.00
Tasks: 187 total, 1 running, 185 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8175180k total, 8088220k used, 86960k free, 335844k buffers
Swap: 4192924k total, 0k used, 4192924k free, 7192208k cached
#当前时间 运行时长 登录用户数 平均负载 1min 5min 15min
#所有进程信息:总计187个, 1个运行,185个睡眠,0个停止,0个僵死
#us用户空间UserSpace, sy内核空间SYstem, ni 调整NICE值,100.0%id空闲idel,wa等待wait,
0.0%hi 硬件中断hardware interrupt, si软中断Soft Interrupt, 0.0%st被偷走时间stole
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15603 root 15 0 12740 1164 820 R 0.3 0.0 0:00.01 top
1 root 15 0 10348 692 584 S 0.0 0.0 0:01.62 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.06 migration/0 实时优先级
3 root 4 19 0 0 0 S 0.0 0.0 0:00.48 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.28 migration/1
#VIRT 虚拟内存集 SHR 共享内存大小shareMemsize S 状态 TIME+实际使用CPU时长
# 按 “1” 显示所有CPU
# 按 “M” 按%MEM排序
# 按 “P” 按%CPU排序
# 按 “T” 按TIME+排序
l : 是否显示平均负载和启动时间 (load)
t : 是否显示进程和CPU状态相关信息 (Tasks)
m : 是否显示内存相关信息(Mem)
c: 是否显示完整的命令行信息
k: 终止某个进程(Kill)
q: 退出top(quit)
-d # 指定延迟时长:top -d 1 刷新时长为1S
-b 批模式: top -d 1 -b 翻屏刷新时长为1S
-n # 显示多少批:top -d 1 -b -n 3 翻屏刷新时长为1S三次后退出
4. 进程间通信(IPC: Inter Process Communication)
共享内存
信号:Signal
旗语:Semaphore
重要的信号:
1:SIGHUP: 让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效
2:SIGINT:Ctrl+c: 中断一个进程(interrupt [ntrpt])
9:SIGKILL:杀死一个进程(立刻强行中止,相关资源失效)
15:SIGTERM:终止一个进程, 默认信号(开始在一定时间内中止,有时间关闭相关资源)
指定一个信号的方法:
信号号码:kill -1
信号名称:kill -SIGKILL (简写)kill -KILL
kill 单个进程:kill PID
kill多个同名进程:killall COMMAND
[[email protected] ~]# ps aux |grep top
root 15937 0.2 0.0 12740 1156 pts/0 S+ 16:10 0:00 top
root 15939 0.0 0.0 61144 740 pts/2 S+ 16:10 0:00 grep top
[[email protected] ~]# kill 15937
5. 调整nice值:
调整已经启动的进程的nice值:renice NI PID
在启动时指定nice值:nice -n NI COMMAND
[[email protected] ~]# ps axo pid,ni,comm
PID NI COMMAND
1 0 init
2 - migration/0
3 19 ksoftirqd/0
4 - migration/1
...
18591 0 bash
32399 0 notification-da
[[email protected] ~]# renice 3 18591
18591: old priority 0, new priority 3
[[email protected] ~]# renice -2 18591
18591: old priority 3, new priority -2
[[email protected] ~]# nice -n -2 useradd user1 #新建用户且将其nice值调整为-2
5. 前台作业:占据了命令提示符
后台作业:启动之后,释放命令提示符,后续的操作在后台完成
前台-->后台:
Ctrl+z: 把正在前台的作业送往后台并停止,jobs查看作业号
COMMAND&:让命令在后台执行
bg: 让后台的停止作业继续运行(background)
bg [[%]JOBID]
fg: 将后台的作业调回前台(foreground)
fg [[%]JOBID]
jobs: 查看后台的所有作业,作业号不同于进程号
+:命令将默认操作的作业
-:命令将第二个默认操作的作业
kill %JOBID: 终止某作业,%不可省,若无%则表示终止该进程号的进程
6. 系统状态查看命令:vmstat (Virtual Memory status)
[[email protected] ~]# vmstat
procs ------memory---- ---swap-- ----io-- --system-- --cpu--
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 85832 336336 7192364 0 0 1 1 6 4 0 0 100 0 0
procs:运行run 阻塞block
memory:交换空间 空闲内存 缓冲内存 缓存空间
swap:si (swap in) so (swap out to memory)
io: bi (blocks in to memory) bo (block out to harddisk) 磁盘块block
system:in中断个数 cs(context switch)
cpu :us(user space %) sy(system space %) id(idle space %) wa(wait io %) st(stole%)
vmstat 1 5:每隔一秒显示1次,共显示5次
7. 系统运行时间:uptime
8. 查看内存信息:
[[email protected] ~]# cat /proc/meminfo
MemTotal: 8175180 kB
MemFree: 85708 kB
Buffers: 336388 kB
Cached: 7192396 kB
SwapCached: 0 kB
Active: 6949012 kB
Inactive: 728836 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 8175180 kB
LowFree: 85708 kB
SwapTotal: 4192924 kB
SwapFree: 4192924 kB
Dirty: 28 kB
Writeback: 0 kB
AnonPages: 149060 kB
Mapped: 41604 kB
Slab: 360808 kB
PageTables: 20772 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 8280512 kB
Committed_AS: 447852 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 265092 kB
VmallocChunk: 34359472503 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
---end---
以上是关于Linux命令:常用进程查看命令的主要内容,如果未能解决你的问题,请参考以下文章