• Shell脚本学习笔记(八)进程管理和工作控制


    进程管理和工作控制

    ps,top,htop命令的使用

    传送信号

    使用kill命令可以对进程传送信号进行管理。管理进程时的基本原则是

    1 先礼后兵。先发送信号给进程,让进程自己完成该做的事,若进程已不听指挥,或失去控制,再发出强制性的信号。这样的好处是,让进程在结束前有缓冲的时间做好收尾工作,如清除存盘、锁定文件、进程编号记录文件等,否则当进程不正常结束时,若在主机中残留这些文件,而下次要再执行程序时,可能会出现无法启动的现象。
    2 各得其所。调整进程的优先级,使得每个进程都得到适当的安排,各项工作能如期完成。进程进入执行排程(schedule)的优先级,成为nice值。通常nice值介于-20~20之间。nice值越少,优先级越高。只有root权限者才能调整介于-20~0的nice值;一般权限的使用者,只能调整其拥有的进程的nice值在0~20之间.换言之,只有root才能调高进程的优先级,一般使用者只能降低其进程的优先级。nice命令和renice命令。nice运用于尚未执行的程序,renice运用在已执行的进程。


    nice -n nice值 程序   指定程序执行时的优先级为某一nice值。-20~19,但只有root可以用-20~0这个区段。若省略-n不指定nice值,则使用预设值10
    renice nice值 -p PID -g 群组 -u 使用者名称   -p -g -u三个选项,可单独使用也可以组合使用

    PRI也是进程优先级的一种表示法,和nice值(NI)不同的是,PRI永远以0或正数表示:PRI=NI+20

    工作控制

    bash的互动模式下,允许用户暂停某一进程,稍后再恢复执行该进程。这种赋予使用者操控进程的机制,成为工作控制(jobs control)
    例子

    #!/bin/bash

    for ((;1;))
    do
    sleep
    10
    done


    整理

    常用的工作控制命令
    & 将指令丢到背景执行
    bg 将暂停的工作丢到背景 使用ctrl+z组合键暂停进程,然后配合bg命令把工作丢到背景,和执行"指令 &"的效果是一样的
    fg 将暂停的工作拉回到前台执行
    jobs 列出工作 或jobs -l
    disown 移除工作
    kill 传送信号给进程或工作
    wait 等待子进程结束,传回最后一个命令的执行状态
    suspend 暂停目前的shell。suspend 暂停一个非login的shell,suspend -f 暂停目前的login shell。当暂停的shell收到CONT信号时才会继续运行。

    进程替换

     
    进程替换可以让我们把标准输出,一次倒给许多进程作为输入;或者由多个进程取得其输出,然后倒给某个程序去处理。
    进行替换的用法:
    1 命令< (指令行)  通过设备文件/dev/fd/n或缓存文件,把进程的输出倒给<左方的命令来读取
    2 > (指令行)  这是通过设备文件/dev/fd/n或缓存盘,把数据提供给()中的进程去读取

  • 相关阅读:
    C# IEnumerable 和 IEnumerator接口浅析
    SQLite笔记
    命令行工具osql.exe使用
    2016年年终工作总结
    c# Json 自定义类作为字典键时,序列化和反序列化的处理方法
    多线程随笔
    常见异步机制分析
    SQL 通过syscolumns.xtype动态查找指定数据类型字段所包含的数据
    SQL 删除索引错误
    SQL 实用函数
  • 原文地址:https://www.cnblogs.com/njucslzh/p/1987916.html
Copyright © 2020-2023  润新知