linux系统上与进程有关的命令:
查看类命令:
ps,pstree,pidof,pgrep\pkill,top,htop,glances,dstat,vmstat,pmap
管理类命令:
bg,fg,jobs,kill,killall,nohup,nice,renice
pstree命令:
pstree - display a tree of processes
显示进程之间的关系,用树状图表示
USER:进程的属主;进程的发起者;
PID:标识进程的唯一性的数字标识符;
CPU:进程在执行过程中占用的CPU处理时间的百分比;
%MEM;进程占用的物理内存百分比;
VSZ:虚拟内存集,可交换内存集;
RSS:常驻内存集,不可交换内存集;
TTY:进程与哪个终端有关联的,"?"则表示与终端无关;
STAT:
R 运行状态;running or runnable (on run queue)
S 可中断睡眠态; interruptible sleep (waiting for an event to complete)
D 不可终端睡眠态; uninterruptible sleep (usually IO)
t 在跟踪期间被停止;stopped by debugger during the tracing
T 停止进程控制信号;stopped by job control signal
X 死进程; dead (should never be seen)
Z 僵尸进程; defunct ("zombie") process, terminated but not reaped by its parent
< 高优先级; high-priority (not nice to other users)
N 低优先级; low-priority (nice to other users)
L 页面是否锁进内存中;has pages locked into memory (for real-time and custom IO)
s 会话领导; is a session leader
l 多线程;is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ 前进程组; is in the foreground process group
START:至今仍未被结束的进程被开启的时间戳;
TIME:当前进程累计占用CPU的总时间;
COMMAND:启动该进程的命令行参数;
BSD风格的选项:
a:显示所有与终端相关的进程;
x:显示所有与终端无关的进程;
u:显示发起进程的用户账户名称;
o format:以自定义的字段,显示ps命令的执行结果;
pgrep,pkill命令
pgrep, pkill - look up or signal processes based on name and other attributes
pgrep是查询进程
pkill是杀掉进程
pgrep [option] pattern
pkill [option] pattern
-U, --uid :显示进程的真实用户ID
-u:显示进程的有效用户ID
-t terminal:显示与指定终端关联的进程;
-a:显示进程的完整命令行参数;
比如:
然后,我的 X shell 才可以正常连上;
top命令:
top - display Linux processes
free:swap空间剩余空间大小;
used:已经被占用的swap空间大小;
avail mem:真正的可用的物理内存的空间大小;
交互式命令:(在进入界面之后才会生效的命令)
1:显示或隐藏CPU各核心的详细信息;
P:根据各个进程对CPU时间的占用百分比进行降序排序;
M:根据各个进程对物理内存空间占用的百分比进行降序排序;
T:根据各个进程对CPU时间占用的百分比进行降序排序;
l:显示或隐藏第一行,uptime等信息;
t:显示或隐藏第二、三行信息
m:显示或隐藏第四、五行信息
q:退出top的交互式模式
s:修改top命令的刷新时间间隔;
k:向指定PID的进程发送指定的信号;
信号:kill -l查询
pmap命令:
pmap - report memory map of a process
pmap [options] pid [...]
-x, --extended:显示扩展信息;
-s:根据指定的字段进行排序;
-u:仅显示指定用户拥有的进程;
常用的交互式命令:
l:显示指定进行所有打开的文件列表;
t:显示进程树结构,可以显示出进程之间的父子关系;相当于F5键的功能;
a:设定进程的CPU亲源性,将选定进程的绑定至某个CPU核心上运行;
-d:禁用disk I/O模块;
-m:禁用mount模块;
-n:禁用network模块;
-t refresh:以秒为单位指定数据刷新时间间隔;
-f /PATH/TO/OUTPUT_DIR:指定输出文件的路径;
-o {HTML|CSV}:为输出到文件的数据指定数据格式;
-s:将glances进程作为服务进程,因此可以提供基于套接字的网络访问;
-B @IP|HOST:将glances进程绑定到指定的IP地址上;通常与-s选项一起使用;
glances可以工作于C/S模型下;
S:服务器模式
# glances -s -B IPADDR
IPADDR指的是服务器上本地某个可用的IP地址;
C:客户端模式
# glances -c SERVER_IPADDR
SERVER_IPADDR指的是从远程客户端是哪个发起连接的目标服务器的IP地址;
glances交互式操作命令;
b:网络模块中的速率统计在bps和Bps间切换;
c:根据CPU占用率进行进程排序;
m:根据内存占用率进行进程排序;
n:隐藏或显示NERWORK模块;
d:隐藏或显示DISK模块;
f:隐藏或显示FILE模块;
t:恢复默认进程排序;
h:显示help帮助信息;
....
dstat:
dstat - versatile tool for generating system resource statistics
stat [-afv] [options..] [delay [count]]
常用选项:
-c,--cpu:仅显示与CPU相关的统计信息;
-d,--disk:仅显示与磁盘等IO设备相关的统计信息;
-g,--page:仅显示与page相关的信息;
-n,--net:仅显示与网络接口相关的统计信息;
-s,--swap:仅显示与交换分区相关的统计信息;
-y,--system:仅显示与系统相关的统计信息;
--tcp:仅显示与TCP协议的连接状态相关的统计信息;
--udp:仅显示与UDP协议的连接状态相关的统计信息;
1.使用信号的数字编码进行信号表示;
2.使用信号的完整名称进行信号表示;
3.使用信号的简写名称进行信号表示;简写名称不包含"SIG"的其余部分;
常用的信号:
1) SIGHUP: 无需关闭对应进程而直接让其重新读取其自身的配置文件;
2) SIGINT:终止运行于前台的进程,使用Ctrl+c组合键,可以发送此信号;
9) SIGKILL: 没有任何预兆终止正在运行的进程,进程所有占用的资源都不会被立即回收;
15) SIGTERM:kill命令默认发送的信号;终止进程的运行,
18) SIGCONT:让转入后台的进程在后台继续运行;
19) SIGSTOP:让转入后台的进程在后台停止运行;
-s:向指定名称的进程发送指定的非SIGTERM信号;
-I:忽略进程名称大小写的区别;
foreground jobs,一般是通过终端启动并且在启动后一直占据终端的进程;
后台作业:
background jobs,一般系统启动时随系统启动,也可以通过终端启动,但启动后理解释放对终端的占用,此时我们称其为"后台运行";
使进程从前台转移至后台:
1.正在运行的前台作业;
Ctrl+z
2.对于尚未启动的进程,使其在启动后自动转入后台:
# COMMAND &
注意:此类从前台启动直接转入后台运行的进程,始终是与终端有关的进程,因此,如果终端被关闭,或shell进程被终止,则此类进程也会被终止;
3.对于尚未启动的进程,使其在启动后自动转入后台,并同时剥离其与终端的关联关系;
# nohup COMMAND &
查看后台作业的信息:
jobs
将后台作业转入到前台运行:
fg [JOB_ID]
注意:如果省略JOB_ID,则在后台进程中以"+"标识的作业会被转入前台;
终止后台进程作业:
kill %JOB_ID:将后台作业结束;
nice,renice
进程的优先级:
0-139
0
1-99
100-139:动态优先级;通过调整进程的nice值来改变进程的动态优先级;
NICE值的取值范围:-20~19
默认情况下,所有用户进程的动态优先级都是120,而所有进程的NICE值默认都为0;
只有超级用户root才能使用附属的NICE值,进而提升进程的优先级;普通用户仅能使用正数的NICE值,进而降低进程的优先级;
nice
nice - run a program with modified scheduling priority
nice [OPTION] [COMMAND [ARG]...]
-n:为后面的进程调整nice值;默认为10;
renice:
renice - alter priority of running processes
renice [-n] priority [-gpu] identifier...
常用选项:
-n priority :设置此次要调整的nice值;即在原有的nice值之上追加上此处指定的数量;
-p pid: