美文网首页
进程管理

进程管理

作者: 心疼你萌萌哒 | 来源:发表于2018-04-26 20:23 被阅读0次
    静态查看进程 ps
    
    [root@tianyun ~]# ps aux |less
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1      0.0         0.6   128096    6708 ?         Ss    16:20    0:01  /usr/lib/systemd/systemd 
    ————————————————————————————
    USER: 运行进程的用户
    PID: 进程ID
    %CPU: CPU占用率
    %MEM: 内存占用率
    VSZ: 占用虚拟内存
    RSS: 占用实际内存
    TTY: 进程运行的终端   //可以开启vim 查询到终端名称
    STAT: 进程状态 man ps (/STATE) 
    ———————————————————————————
    R 运行
    S 可中断睡眠 Sleep,(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 
    D 不可中断睡眠,(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 
    T 停止的进程 
    Z 僵尸进程
    X 死掉的进程
    ————————————————————————————
    [了解]
    Ss s进程的领导者,父进程
    S< <优先级较高的进程
    SN N优先级较低的进程
    R+ +表示是前台的进程组
    Sl 以线程的方式运行 
    ————————————————————————————
    START: 进程的启动时间  //可以开启vim ,在用date验证。
    TIME: 进程占用CPU的总时间
    COMMAND: 进程文件,进程名
    
    5种状态码
    D 不可中断 uninterruptible sleep (usually IO) 
    R 运行 runnable (on run queue) 
    S 中断 sleeping 
    T 停止 traced or stopped 
    Z 僵死 a defunct (”zombie”) process 
    
    示例1:
    1 以CPU占比降序排列
    [root@tianyun ~]# ps aux --sort %cpu |less      //--sort排序,升序(小到大)
    
    示例2:安装一个进程观察,父子进程以及状态。父亲Ss 和 儿子S
    [alice@tianyun ~]$ sudo yum -y install httpd    //安装网站程序。
    [alice@tianyun ~]$ sudo systemctl start httpd   //启动网站
    [alice@tianyun ~]$ sudo systemctl stop firewalld  //关闭防火墙
    [root@tianyun ~]# ps aux |grep httpd //查看网站程序。
    root 9279 0.0 0.0 4264 672 pts/1 S+ 14:37 0:00 \_ grep httpd
    root 8310 0.0 0.1 10092 2912 ? Ss 14:19 0:00 /usr/sbin/httpd
    apache 8311 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    apache 8312 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    apache 8313 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    apache 8314 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    apache 8315 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    apache 8316 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    apache 8318 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    apache 8319 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
    
    示例3:自定义显示字段
    [root@tianyun ~]# ps axo user,pid,ppid,%mem,command   //xo指定列显示
    [root@tianyun ~]# ps axo user,pid,ppid,%mem,command |grep httpd 
    root 8310 1 0.1 /usr/sbin/httpd
    apache 8311 8310 0.0 /usr/sbin/httpd
    apache 8312 8310 0.0 /usr/sbin/httpd
    apache 8313 8310 0.0 /usr/sbin/httpd
    apache 8314 8310 0.0 /usr/sbin/httpd
    apache 8315 8310 0.0 /usr/sbin/httpd
    apache 8316 8310 0.0 /usr/sbin/httpd
    apache 8318 8310 0.0 /usr/sbin/httpd
    apache 8319 8310 0.0 /usr/sbin/httpd
    root 9236 6798 0.0 grep httpd
    [root@tianyun ~]# ps axo user,pid,ppid,%mem,%cpu,command --sort -%cpu |less    //针对某些程序,显示某些列,再进行排序。简洁明了
    
    查看进程的4种方法:
    第一种。cat
    [root@localhost ~]$ cat /run/sshd.pid 
    830
    
    第二种。ps
    [root@localhost ~]# ps aux |grep sshd
    root 10180 0.0 0.0 7224 1024 ? Ss 16:00 0:00 /usr/sbin/sshd
    第三种。pgrep
    
    [root@localhost ~]# pgrep -l sshd
    10180 sshd
    [root@localhost ~]# pgrep sshd
    10180
    
    第四种。pidof
    [root@localhost ~]# pidof sshd
    10180
    
    第一部分:系统整体统计信息
    top - 11:45:08 up 18:54,  4 users,  load average: 0.05, 0.05, 0.05
    Tasks: 176 total,   1 running, 175 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3865520 total,  1100000 free,   580268 used,  2185252 buff/cache
    KiB Swap:  4063228 total,  4063228 free,        0 used.  2917828 avail Mem 
    负载加权值解释:—小于1正常————————————
    load average: 0.86, 0.56, 0.78 系统最近 1分钟,5分钟,15分钟平均负载
    ![image.png](https://img.haomeiwen.com/i11415933/b0f24560309890aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    top技巧
    动态查看进程 top,像windows的任务管理器
    [root@tianyun ~]# top          //回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。
    [root@localhost ~]# top -d 1   //每1秒刷新。
    [root@localhost ~]# top -d 1 -p 10126 查看指定进程的动态信息
    [root@localhost ~]# top -d 1 -p 10126,1    查看10126和1号进程
    [root@localhost ~]# top -d 1 -u apache 查看指定用户的进程
    [root@localhost ~]# top -d 1 -b -n 2 > top.txt //-b附加参数,只看2次top信息后写入到文件
    [root@localhost ~]#vim  top.txt     //最后打开文件详细阅读
    
    top交互命令
    Ctrl+L 擦除并且重写屏幕。 
    h或者? 显示帮助画面,给出一些简短的命令总结说明。 
    k       终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 
    i 忽略闲置和僵死进程。这是一个开关式命令。 
    q 退出程序。 
    r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 
    S 切换到累计模式。 
    s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。 
    f或者F 从当前显示中添加或者删除项目。 
    o或者O 改变显示项目的顺序。 
    l 切换显示平均负载和启动时间信息。 
    m 切换显示内存信息。 
    t 切换显示进程和CPU状态信息。 
    c 切换显示命令名称和完整命令行。 
    M 根据驻留内存大小进行排序。 
    P 根据CPU使用百分比大小进行排序。 
    T 根据时间/累计时间进行排序。 
    W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
    
    1 查看计划任务程序crond
    [root@localhost ~]$ ps aux |grep crond
    root 22319 0.0 0.1 124140 1568 ? Ss 14:54 0:00 /usr/sbin/crond -n
    yang 22427 0.0 0.0 112648 964 pts/2 R+ 15:07 0:00 grep --color=auto crond
    
    2 暂停计划任务程序。
    [root@localhost ~]$ 
    [root@localhost ~]$ sudo kill -19 22319
    [root@localhost ~]$ ps aux |grep crond
    root 22319 0.0 0.1 124140 1568 ? Ts 14:54 0:00 /usr/sbin/crond -n
    yang 22431 0.0 0.0 112648 964 pts/2 R+ 15:07 0:00 grep --color=auto crond
    
    3 继续计划任务程序。观察状态
    [root@localhost ~]$ 
    [root@localhost ~]$ sudo kill -cont 22319
    [root@localhost ~]$ ps aux |grep crond
    root 22319 0.0 0.1 124140 1568 ? Ss 14:54 0:00 /usr/sbin/crond -n
    yang 22436 0.0 0.0 112648 960 pts/2 R+ 15:08 0:00 grep --color=auto crond
    总结:kill带ID,killall带程序名称
    kill (PID or Job ID)  killall (name)
    
    使用top杀死一个进程
    top也可杀死进程
    1 请使用一个终端,开启一个进程。
    [aofa@localhost ~]$ sleep 10000
    
    2 在另一个终端查询并杀死该进程。
    [root@localhost ~]# ps aux | grep sleep
    root       2004  0.0  0.0 107896   604 ?        S    06:51   0:00 sleep 60
    aofa       2058  0.0  0.0 107896   604 pts/2    S+   06:52   0:00 sleep 10000
    root       2063  0.0  0.0 112664   972 pts/1    R+   06:52   0:00 grep --color=auto sleep
    
    3 通过top杀死该进程。
    [root@localhost ~]# top -d 1 -p 2058
    k
    9
    回车
    
    screen
    示例2:使用屏风程序,管理远程主机。防止远程掉线
    [root@tianyun ~]# ssh 172.16.50.240
    [root@www ~]# yum -y install screen
    [root@www ~]# screen -S install_apache //-S启动会话的名字
    sleep 9000
    
    ==断网后,重新连接==
    [root@www ~]# screen -list
    There are screens on:
    28958.install_nginx (Detached)
    29013.install_apache (Detached)
    2 Sockets in /var/run/screen/S-root.
    
    [root@www ~]# screen -r 29013
    
    文件系统proc
    查看CPU
    1.lscpu
    2.grep 'processor' /proc/cpuinfo 逻辑CPU的个数
    3.grep 'physical id ' /proc/cpuinfo 物理CPU的个数
    
    查看内存
    1.free -m
    
    查看内核
    cat /proc/cmdline
    
    查看CPU使用率
    uptime
    
    查看网络 
    cat /proc/sys/net/ipv4/ip_forward
    

    相关文章

      网友评论

          本文标题:进程管理

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