美文网首页
进程管理

进程管理

作者: 放下梧菲 | 来源:发表于2020-05-03 20:12 被阅读0次

    1、进程与程序

    执行一个程序或命令就可以触发一个进程。



    这里我们用bash,调用一个新的进程,可以看出,第二个子进程的PPID就是第一个进程的PID,PPID就是父进程的PID,从这里看的出来子进程和父进程的关系。状态也能够看得出来。

    2、任务管理

    • 直接将命令丢到后台执行的&


    可以看到我这里解压缩一个文件,放到后台运行,我可以执行其他命令,我执行其他命令完成后,这个解压缩文件也完成了。是不会影响我前台的操作的。但是这个程序不是很完美,最好是给他重定向一下,这样没有数据提示。

    • 将目前的任务丢到后台中的暂停:ctrl + z


      当你打开一个文件的时候按暂停操作,即可返回前台执行别的操作
    • 查看目前的后台任务状态:jobs
      jobs [-lrs]
      -l: 除了列出job number 与命令串之外,同时列出PID号码
      -r:仅列出正在后台run的任务
      -s:仅列出正在后台当中暂停的任务

    这里可以看出之前在后台运行的打开的文件
    • 将后台任务拿到前台来处理 :fg
      fg %jobnumber
    这里我又新建一个进程,fg默认进入最先放到后台的进程
    • 让任务在后台下的状态变成运行中:bg
    这里可以看得出来程序从已停止变成了正在运行中
    • 管理后台当中的任务: kill
      kill可以直接删除后台当中的任务。
      kill -signal %jobnumber
      kill -l 列出能用的信号


      还可以man 7 signal来看signal如何使用
    通过本图就可以看得出来一个任务被强制删除了

    3、进程管理

    1、查看进程
    • ps:将某个时间点的进程运行截取下来

    仅查看自己的bash相关进程: ps -l


    F:代表这个进程标志,说明为权限。
    S:状态。
    UID/PID/PPID:进程的UID,PID,父进程的PID。
    C:CPU使用率
    PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级,数值越小代表该进程越快被执行。
    ADDR:该进程位于内存中哪个地方,如果正在运行,则显示-
    SZ:代表该进程用掉多少内存
    WCHAN:是否正在运行,如果运行则是-
    TTY:终端位置
    TIME:使用CPU时间
    CMD:触发进程的命令。

    查看系统所有进程:ps aux


    USER:该进程属于所属用户账号
    PID:该进程的进程ID
    %CPU:该进程使用掉的CPU资源百分比
    %MEM:该进程所占的物理内存百分比
    VSZ:该进程使用掉的虚拟内存量
    RSS:该进程占用的固定的内存量
    TTY:该进程在哪个终端上运行的,若与终端无关则显示?
    STAT:该进程目前的状态,状态显示与ps -l 的S相同。
    START:该进程被被触发启动时间。
    TIME:该进程实际使用CPU运行的时间。
    COMMAND:该进程实际命令

    • top:动态查看进程的变化
      top [-d 数字] | top [-bnp]

    -d:后面可以接秒数,进程界面更新的秒数,默认是5s
    -b:以批量的方式执行top
    -n:与-b搭配,意义是,需要执行几次top的输出结果
    -p:指定某些个PID来执行查看检测

    还有很多参数不一一列举,大家可以man top来查看进程变化。


    top -d 2

    上面的界面是整个系统的资源使用状况,下面的界面是每个进程的使用的资源情况。

    • pstree:可以列出进程树
      可以很容易的看出进程之间的相关性。


    2、进程的管理

    进程之间是可以相互控制的。
    kill -signal PID
    killall -signal 命令名称

    kill后面加上PID,一般都要配合ps,pstree等命令。但是killall可以利用执行命令的名称来给予信号。

    可以直接删除以httpd启动的进程 -i可以交互性的提示用户是否删除

    3、进程的执行顺序

    正如之前所说的执行顺序即是所谓的优先级取决于priority与nice值。
    priority 是无法被改变的,它是由系统内核动态调整的。
    但是我们可以通过修改nice的值来修改优先级。
    PRI(new)=PRI(old)+nice
    nice的调整范围是-20-19,root可以随便调整自己或者他人进程的nice值,一半用户只可以将nice值越调越高。

    • nice 新执行的命令立即给予新的nice值
      nice [-n 数字] command
      -n : 后面接一个数值,数值的范围为-20-19


      这里可以很清楚看见优先级的变化

    注意:不一定每次都会按照你设置的调整,因为内核会动态的变化Pri。

    • renice 已存在进程的nice重新调整
      renice [number] PID
    可以看的出来第一个进程Pri减少了5

    相关文章

      网友评论

          本文标题:进程管理

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