Linux进程管理—进程管理

时间:2022-04-12 04:31:03

进程间通信IPC

  •     共享内存
  •     信号: Signal
  •     Semaphore
    

重要的信号

1:SIGHUP: 让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效;
2: SIGINT:Ctrl+c: 中断一个进程
9: SIGKILL:杀死一个进程
15: SIGTERM:终止一个进程, 默认信号

信号操作

指定一个信号

    信号号码:kill -1
    信号名称:kill -SIGKILL
    信号名称简写:kill -KILL

杀死一个信号

    kill PID

    killall PName

进程管理

调整进程优先级

renice

    调整nice值
    调整已经启动的进程的nice值:renice NI PID

nice

    在启动时指定nice值:nice -n NI COMMAND

作业管理

前台-->后台

    Ctrl+z: 把正在前台的作业送往后台
    COMMAND &:让命令在后台执行

bg

   让后台的停止作业继续运行
    bg [[%]JOBID]

jobs

    查看后台的所有作业
    作业号,不同于进程号
        +:命令将默认操作的作业
        -:命令将第二个默认操作的作业       

fg

    将后台的作业调回前台
    fg [[%]JOBID]

kill

     kill %JOBID: 终止某作业

系统与进程管理

vmstat

     显示进程队列,内存/swap空间负载,IO块交换,中断个数,上下文切换次数,CPU负载等系统信息
     vmstat [options] [interval [count]]
    -a:显示active/inactive内存信息
    -f:显示自开机起所有的forks(fork,vfork,colne system call)数量
    -t:额外显示时间戳列
    -m:显示slainfo
    -s:显示内存及CPU信息,类似与/proc/meminfo和/proc/stat信息
    -d:显示磁盘/块设备读写/IO信息
    -p sdaN:显示指定分区磁盘读写/IO信息
    -S [k | K | m | M]:指定单位(四个单位换算分别为:1000, 1024, 1000000, or 1048576 bytes)

    vmstat n:每n秒显示刷新一次    
    vmstat -a n:每n秒显示刷新一次,显示active/inactive内存信息
    vmstat -a n m:每n秒显示刷新一次,显示m次,显示active/inactive内存信息

mpstat

    显示CPU处理器相关信息
    mpstat [options] [interval [count]]
    -A:显示所有信息,相当与 -I ALL -u -P ALL
    -I {SUM | CPU | ALL}:显示CPU中断信息
        SUM:显示CPU的平均中断总数,单位秒
            mpstat -P [0 | 1 | ALL] -I SUM:显示每个CPU的SUM数
        CPU:显示每个CPU的individual 中断总数,单位秒
        ALL:同时显示SUM和CPU对应的中断信息
    -P {cpu0,cpu1……cpuN | ON | ALL}:显示指定CPU处理器的利用率信息
        cpuN:要显示的处理器的编号,0表示第一个处理器
        ON(ONLINE):只显示在线/联机处理器的利用率信息
        ALL:显示所有线上线下处理器的利用率信息
    -u:显示利用率信息,默认显示
        %irq:硬件中断CPU利用率
        %soft:软件中断CPU利用率

iostat

    显示内核版本信息,主机名,系统位数,CPU个数,CPU 平均负载,磁盘读写速率和读写总量情况等
    iostat [options] [device,……] [interval [count]]
    tps(number 0f transfer per second):每秒IO请求的次数
    
    -c:只显示CPU负载信息
    -d:只显示磁盘读写信息
    -n:只显示NFS相关信息
    -p:只显示所有块设备及其分区的读写信息
    -h:可读性显示(只对NFS信息有效)
    -m:MB为单位显示磁盘读写信息
    -k:KB为单位显示磁盘读写信息
    -t:显示时间戳
    -x:显示扩展信息

    iostat -d n:每n秒显示刷新一次,只显示磁盘读写信息
    iostat -d n m:每n秒显示刷新一次,显示m次,只显示磁盘读写信息
    iostat -d hda hdb n m:每n秒显示刷新一次,显示m次,只显示hda,hdb磁盘读写信息

    /proc/stat:系统CPU,intr,ctxt,btime,进程等信息
    /proc/uptime:系统uptime信息
    /proc/diskstats:分区和块设备信息(包括ramN,loopN,sdaN等磁盘信息)
    /proc/partitionts:分区信息(只包括sdaN磁盘信息)
    /sys/block:块设备信息(包括ramN,loopN,sda等磁盘信息)
    /proc/self/mountstats:系统分区,块设备,以及虚拟文件系统挂载信息
    /dev/disk:分区按类别(id,label,path,uuid)存储信息

pidstat

    显示当前时间下内核管理的相关进程信息
    pidstat [options] [interval [count]]
    -C comm:显示命令中包含comm字符的进程信息
    -d:显示磁盘IO读写信息
    -h:单行显示,显示时间戳为NNNNNN毫秒
    -l:显示完整命令行
    -p [pid | SELF | ALL]:分别显示指定pid/自身/所有进程的信息
    -r:显示进程内存使用情况(RSS,VSZ)以及page faults情况
        minflt/s:Total number of minor faults the task has made  per  second
              majflt/s:Total number of major faults the task has made  per  second
    -u:显示进程CPU使用情况
       -t:显示线程信息
        TGID:线程组ID
        TID:线程ID
    -T [TASK | CHILD | ALL]:分别显示individual tasks/global tasks 以及 child tasks/individual && global tasks相关信息

uptime

     同top显示信息第一行

/proc/meminfo 

      记录内存详细信息

/proc/1/maps 

      记录一个进程虚拟内存详细占用情况