linux之进程管理

执行中的程序称作进程。当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源、内存、安全属性和与之相关的状态。可以有多个进程关联到同一个程序,并同时执行不会互相干扰。操作系统会有效地管理和追踪所有运行着的进程。

linux之进程管理

 

linux之进程管理

 

 

进程管理

进程   process
       
       某应用程序打开的进程
       PID         Process ID
       
       类型:
            用户空间进程
            内核空间进程


用户空间进程:通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。

内核空间进程:可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行

 

静态查看进程状态

# ps
 
[root@wei csdn]# ps                >>>>查看本终端的进程
   PID TTY          TIME CMD
  1806 pts/1    00:00:00 bash
  2805 pts/1    00:00:00 ps

选项的使用方式:

        BSD风格:选项没有横线-        ps aux
        SysV风格:选项需要带有横线-   ps -elf
        
        
BSD风格:
       
       a :显示与终端相关的进程
       u : 显示启动进程的用户
       x :显示与终端无关的程序
       

# ps a

# ps u

# ps x

[root@wei csdn]# ps u
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1343  0.0  0.2 115436  2032 pts/0    Ss+  19:59   0:00 -bash
root       1674  0.0  0.2 115432  2032 tty1     Ss+  20:01   0:00 -bash

 

USER 运行进程的用户
%CPU 进程所占欧诺个的CPU百分比
 %MEM  进程所占用的MEM百分比
VSZ  虚拟内存集,进程独有的内存+共享存在
PSS 进程独有的内存

 

STAT    进程的状态

      D: 不可中断的睡眠(等待磁盘IO完成)
      S:可中断的睡眠(不需要等待磁盘IO完成)
      R:运行或就绪
      T: 停止
      Z:僵死  Zombie

      < :高优先级进程
          会被CPU优先执行
          会获取更多的CPU执行时间          
    
      N:低优先级进程
      +:前台进程组中的进程
      l:多线程进程(Thread)
      s:会话进程首进程,某一个连接的父进程

[root@wei csdn]# ps aux |less
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.6 127940  6580 ?        Ss   19:58   0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    19:58   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    19:58   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   19:58   0:00 [kworker/0:0H]

 带有方括号为系统进程(Linux内核启动)
   无方括号的(用户进程)


SysV风格选项:
         
          -e  显示所有进程
          -l  详细信息
          -f  以长格式显示(更多字段类容)

[root@wei csdn]# ps -elf | less
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 31985 ep_pol 19:58 ?        00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
1 S root          2      0  0  80   0 -     0 kthrea 19:58 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 19:58 ?        00:00:01 [ksoftirqd/0]
	

进程优先级:
      0---139
      
      数据越小,越先级越高
      
高优先级进程:
    会获取CPU更多的执行时间
    会被CPU优先执行
    
nice值:
    新优先级=旧优先级——nice值
    
    -20----19
    
    普通用户仅能够调大nice值,既降低进程优先级
    root用户可以随意调整nice值
    
显示进程树

[root@wei csdn]# yum install psmisc  #  安装显示pstree的命令包

[root@wei csdn]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─login───bash
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─mysqld_safe───mysqld───21*[{mysqld}]
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─2*[sshd───bash]
        │      └─sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

 

[root@wei csdn]# ps aux | grep vim
root       2917  0.2  0.5 151600  5136 pts/2    S+   21:39   0:00 vim list
root       2925  0.0  0.0 112720   984 pts/1    R+   21:43   0:00 grep --color=auto vim
[root@wei csdn]# pidof vim
2917
[root@wei csdn]# pidof bash
1828 1806 1674 1343

 

linux之进程管理

上一篇:如何成为一个成功的 Java 开发人员?


下一篇:shell脚本获取当前时间,分钟之前时间、小时之前时间和天之前时间