Linux & shell

shell -- 进程管理系列命令浅析

2019-07-24  本文已影响0人  邹志全

linux 常用的命令工具非常多,除了cd、ls、mkdir、cp、mv这些非常常用和简单的命令,这里对于开发和排查问题过程中进程相关常用的几个命令进行介绍

ps 是查看进程状态的一个命令,类似的还有top等,具体来说:

查看类命令:

ps,pstree,pidof,pgrep\pkill,top,htop,glances,dstat,vmstat,pmap

管理类命令:

bg,fg,jobs,kill,killall,nohup,nice,renice

先看ps,常用参数:

-A :所有的进程均显示出来,与 -e 具有同样的效用;

-a : 显示现行终端机下的所有进程,包括其他用户的进程;

-u :以用户为主的进程状态 ;

x :通常与 a 这个参数一起使用,可列出较完整信息。

输出格式:

l :较长、较详细的将该PID 的的信息列出;

j :工作的格式 (jobs format)

-f :做一个更为完整的输出。

下面来看一下demo 和示例

image.png

然后看一下各个详细信息的示例:

F 代表这个程序的旗标 (flag), 4 代表使用者为 superuser;

S 代表这个程序的状态 (STAT);

UID 代表执行者身份

PID 进程的ID号!

PPID 父进程的ID;

C CPU使用的资源百分比

PRI指进程的执行优先权(Priority的简写),其值越小越早被执行;

NI 这个进程的nice值,其表示进程可被执行的优先级的修正数值。

ADDR 这个是内核函数,指出该程序在内存的那个部分。如果是个执行 的程序,一般就是『 - 』

SZ 使用掉的内存大小;

WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;

TTY 登入者的终端机位置;

TIME 使用掉的 CPU 时间。

CMD 所下达的指令名称

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)

列出我们想要的进程之后,通常下一步就是进行操作了,最常用的就是kill了

kill命令的格式:kill [-s signal|-p] [--] pid...

当在一个linux操作系统上想执行kill 时,需要先看一下当前系统支持哪些信号量(kill -l),比如说我的电脑:

image.png

常用的信号:

  1. SIGHUP: 无需关闭对应进程而直接让其重新读取其自身的配置文件;

  2. SIGINT:终止运行于前台的进程,使用Ctrl+c组合键,可以发送此信号;

  3. SIGKILL: 没有任何预兆终止正在运行的进程,进程所有占用的资源都不会被立即回收;

  4. SIGTERM:kill命令默认发送的信号;终止进程的运行,

  5. SIGCONT:让转入后台的进程在后台继续运行;

  6. SIGSTOP:让转入后台的进程在后台停止运行;

然后就可以使用 kill -方式 pid 来杀死进程了。

上一篇下一篇

猜你喜欢

热点阅读