zoukankan      html  css  js  c++  java
  • 操作系统-进程(3)Linux下的进程相关命令

    操作系统给予这个内存中的单元一个标识符(PID)依据登入者的UID/GID(/etc/passwd)
    衍生出的其它程序(子程序),一般情况也,也会沿用这个程序(父程序)的相关权限
    ParentID(PPID)
    [root@localhost ~]# bash         <==在当前用户环境下再触发一次bash,原bash会sleep
    [root@localhost ~]# ps -l
    F S   UID   PID  PPID  C PRI  NI   ADDR    SZ       WCHAN      TTY        TIME        CMD
    4 S     0  5195  3285  0  80   0    -     29007     wait       pts/2    00:00:00     bash
    4 S     0  7651  5195  1  80   0    -     29008     wait       pts/2    00:00:00     bash
    0 R     0  7686  7651  0  80   0    -     37233      -         pts/2    00:00:00      ps
    系统先以fork的形式复制一个与父程序相同的暂存程序,它们的PID不同。
    暂存程序开始以exec的方式加载实际要执行的程序,成为一个子程序。
     
    命令后加&:于后台运行,不会被【Ctrl】+【c】中断
    [root@localhost ~]# tar -zpcf /tmp/etc.tar.gz  /etc &
    [1] 8400                 <==此时bash会给这个job一个工作号码job number,该指令触发的PID为8400
    ……
    [1]+ Done tar -zpcf /tmp/etc.tar.gz /etc
    在背景中执行的程序,如果有stdout/stdeer,数据依然出现在屏幕上
    背景中执行的程序不能等待terminal/shell的input,但可以用fg/bg呼叫
    fg %jobnumber       <==将背景工作拿到前台(foreground)处理
    bg %jobnumber       <==激活后台暂停的进程 
    jobs观察目前的背景工作状态
    -l 除了列出job number和指令串,同时列出PID号码
    -r 仅列出正在背景running的工作
    -s 仅列出正在背景stopping的工作
     
    kill    给某个程序一个讯号
    kill -l列出kill命令当前能够使用的讯号(signal)有哪些
    kill -signal PID/%jobnumber
    -1    启动被终止的程序,让该PID重新读取自己的配置文件
    -2    同【ctrl】+【c】
    -9    立刻强制删除
    -15/-SIGTERM    以正常程序的方式终止
    killall -signal command 利用下达指令的名称给予讯号,而不根据PID/jobnumber
    -i 交互式的,删除时出现提示字符给用户
    例如killall -i -9 bash
    可以通过pidof [-sx] program_name查询某个程序的PID
    -s 仅列出一个PID
    -x 同时列出program_name可能的PPID那个程序的PID
     
    远程连接Linux主机,将工作以&的方式放置到背景中,工作管理的背景与终端机有关而非系统背景,终端机登出则工作中断,可以用at将工作放到系统背景,或:
    nohup command
    nohup command &
    nohup不支持bash内建指令,与终端机无关,输出会被导向~/nohup.out
     
    ps
    -A:所有的process均显示出来,类似-e
    -a:不与terminal有关的所有process
    -u:有效使用者有关的process
    -x:通常与a这个参数一起使用,列出更详细的信息
    [root@localhost ~]# ps -l        <==仅列出与自己的操作环境(bash)有关的程序
    F S    UID  PID  PPID  C  PRI  NI  ADDR    SZ     WCHAN   TTY        TIME      CMD
    4 S     0  3276  3271  0  80   0    -     29040   wait    pts/0    00:00:00   bash
    4 S     0  3688  3276  0  80   0    -     29009   wait    pts/0    00:00:00   bash
    0 R     0  3924  3688  0  80   0    -     37233    -      pts/0    00:00:00   ps
    最上层的父程序会是自己的bash而没有延伸到init这支程序去
    F(process flags)说明程序总结权限,4表示此程序权限为root
                                                                       1表示此子程序仅fork没有实际执行(exec)
    S(STAT)             代表程序的状态,R(Running)正在运行中
                                                         S(Sleep)正在睡眠状态但可以被唤醒
                                                         D  不可被唤醒的睡眠状态
                                                         T(Stop)停止状态
                                                         Z(Zombie)僵尸状态,程序已经终止但无法被移除到内存外
    C                              CPU使用率百分比
    PRI/NI(priority/Nice)代表此程序被CPU使用的优先级,数值越小越快被CPU执行
    ADDR                      指出程序在内存哪一部分,running的程序一般会显示[-]
    SZ                            此程序用掉多少内存
    WCHAN                 目前程序是否运行中,[-]代表运行中
    TTY                         登入者的终端机位置,远程登录使用动态终端接口pts/n,?表示与终端机无关
    TIME                       实际花费CPU运作的时间
    CMD(command)
    [root@localhost ~]# ps aux            <==列出所有目前内存中的程序,按照PID顺序显示
    USER    PID   %CPU  %MEM      VSZ    RSS     TTY  STAT   START   TIME      COMMAND
    root     1    0.1    0.3     193628  6724     ?    Ss    22:06    0:05     /usr/lib/system
    root     2    0.0    0.0       0      0       ?    S     22:06    0:00    [kthreadd]
    root     3    0.0    0.0       0      0       ?    S     22:06    0:00    [ksoftirqd/0]
    %MEM                    该process占用物理内存百分比
    VSC                         该process使用的虚拟内存量(kbytes)
    RSS                         该process占用的固定内存量
    [root@www ~]# ps aux | egrep '(cron|syslog)'
    root     4286     0.0     0.0     1720       572      ?      Ss    Mar11     0:00     syslogd -m 0
    root     4661     0.0     0.1     5500      1192      ?      Ss    Mar11     0:00     crond
    root     14286    0.0     0.0     4116       592     pts/1   R+   16:15      0:00     egrep (cron|syslog)
     
    top
    -d 接程序画面更新的秒数,默认5秒
    -b 以批次的方式执行top
    -n 与-b搭配,意为需要进行多少次top的输出结果    top -b -n 2> /tmp/top.txt
    -p 指定某些PID进行观察
    top - 22:42:19  up 2 min,  2 users,  load average: 0.43, 0.39, 0.16
    Tasks: 198 total,   1 running, 197 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  2.3 us,  4.8 sy,  0.0 ni, 92.5 id,  0.3 wa,  0.0 hi,  0.1 si,  0.0 st
    KiB Mem :  1875748 total,   925472 free,   490608 used,   459668 buff/cache
    KiB Swap:  2097148 total,  2097148 free,        0 used.  1177456 avail Mem
     
    PID   USER     PR   NI  VIRT    RES    SHR   S   %CPU   %MEM       TIME+         COMMAND               
    2990 root 20 0 1729560 179908 46216 R 20.6 9.6 0:23.26 gnome-shell
    2363 root 20 0 262556 36664 10496 R 9.5 2.0 0:10.01 Xorg
    3310 root 20 0 555956 20272 12740 S 5.8 1.1 0:05.71 gnome-terminal- ……
    开机时间,已开机时长,用户数,系统在1、5、15分钟的平级负载,可以用uptime显示
    目前程序总量和状态
    CPU整体负载,按【1】查看多核,us表示用户空间占用cpu百分比
                                                            sy表示系统内核空间占用CPU百分比
                                                            ni表示用户进程空间内改变过优先级的进程占用CPU百分比
                                                            id表示空闲CPU百分比
                                                            wa表示由于IO 等待而使CPU处于等待的时间
                                                            hi表示硬件中断占用CPU时间百分比
                                                            si表示软中断占用CPU时间百分比
                                                            st表示虚拟服务占用CPU时间百分比                                      
    物理内存
    虚拟内存
    PID :每个 process 的 ID ,按【k】杀掉
    USER:该 process 所属的使用者;
    PR :Priority 的简写,程序的优先执行顸序,越小越早被执行
    NI :Nice的简写,与 Priority 有关,也是越小越早被执行,按【r】重写Nice
    %CPU:CPU 的使用率,按【p】即可以CPU使用率排序
    %MEM:内存的使用率,按【m】即可以内存使用率排序
    TIME+:CPU 使用时间的累加
     
    pstree    以树状结构显示进程
    -p 同时列出每个程序的PID
    -u 同时列出每个程序的所属账户
     
    优先执行序(priority,PRI)越低代表越优先
    PRI(new)=PRI(old)+nice          但最终RRI由系统分析决定
    root可以随意调整自己或他人的程序,nice可调整范围为-20~19
    一般用户仅可调整自己的nice值且范围为0~19。并且只能调高不能调低。
    nice [-n 数字] command
    renice [数字] PID
  • 相关阅读:
    [SDOI2009]学校食堂Dining
    [SCOI2005]最大子矩阵
    [AHOI2009]中国象棋
    洛谷P1850 换教室(概率dp)
    洛谷[1007]梦美与线段树(线段树+概率期望)
    洛谷P3577 [POI2014]TUR-Tourism
    CF1045G AI robots(动态开点线段树)
    洛谷P4721 【模板】分治 FFT(分治FFT)
    洛谷P4726 【模板】多项式指数函数
    洛谷P4173 残缺的字符串(FFT)
  • 原文地址:https://www.cnblogs.com/yangyuliufeng/p/9322093.html
Copyright © 2011-2022 走看看