美文网首页Linux & shell
shell -- 进程管理系列命令浅析

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

作者: 邹志全 | 来源:发表于2019-07-24 22:35 被阅读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)

    • 前进程组; is in the foreground process group

    列出我们想要的进程之后,通常下一步就是进行操作了,最常用的就是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 来杀死进程了。

    相关文章

      网友评论

        本文标题:shell -- 进程管理系列命令浅析

        本文链接:https://www.haomeiwen.com/subject/knzllctx.html