• Linux 进程和服务管理


    进程:在Linux中每一个执行的程序称为进程,每一个进程都有一个pid(进程号)

    进程:可以以前台和后台的方式存在,前台的进程(在显示器中显示),后台的进程(在后台运行)

    Linux进程类型:

    • 交互进程:由shell启动的进程,既可在前台运行,也可在后台运行;

    • 批处理进程:与终端没有联系,是一个进程序列;

    • 守护进程:linux系统启动时启动的进程,并在后台运行

    ps查看系统执行的进程

    ps -a显示当前终端的所有进程信息
    ps -u以用户的格式显示进程信息
    ps -x显示后台进程运行的参数
    ps -aux 查看全部进程
    ps -ef全格式显示所有进程(-e全部进程,-f全格式)

    下面对参数的解释:

    USER使用者
    PID进程号
    %CPU占用cpu的比例
    %MEM占用物理内存的比例
    VSZ占用的虚拟内存(kb)
    RSS占用物理内存(kb)
    TTY终端
    STAT运行状态
    START执行的开始时间
    TIME占用cpu时间
    COMMAND进程名

    STAT的几种状态:

    S- 随眠           s-先导进程         N-优先级较低         R-正在运行

    D-短期等待     Z-僵尸进程        T-被追踪或停止

     pidof查询PID

    用法:pidof [选项] [服务名称]

    kill  终止进程 

    • kill     [选项]   进程号       结束进程

    • killall [选项]   进程名称    可以结束多个进程

    • pkill  [-t 终端号]  进程名    用于踢出登录用户

    交互信号: 查看信号  kill -l

    信号名称功能
    1

    SIGHUP

    挂起进程
    2SIGINT终止进程
    3SIGQUIT停止进程
    9SIGKILL无条件终止进程
    15SIGTERM尽可能终止进程
    17SIGSTOP

    无条件停止进程,但不是终止进程

    18SIGSTP

    停止或暂停进程,但不终止进程

    19SIGCONT

    继续运行停止的进程

    例子:

    kill -9  进程编号    强制杀死该进程

     trap  捕获信号 

    格式: trap  command   signals        singnals   可以使用信号数值,也可以使用信号名

    注意:

    例如:

    trap  "echo   good"  SIGINT   执行Ctrl+C时,不会终止进程,会输出 good

    trap  "echo   exit"    EXIT      脚本退出前 执行  exit

    修改或移除捕获:

    要想在脚本中的不同位置进行不同的捕获处理,只需重新使用带有新选项的trap命令。

    1. trap "echo ' Sorry... Ctrl-C is trapped.'" SIGINT
    2. #
    3. count=1
    4. while [ $count -le 5 ]
    5. do
    6. echo "Loop #$count"
    7. sleep 1
    8. count=$[ $count + 1 ]
    9. done
    10. #
    11. trap "echo ' I modified the trap!'" SIGINT
    12. #
    13. count=1
    14. while [ $count -le 5 ]
    15. do
    16. echo "Second Loop #$count"
    17. sleep 1
    18. count=$[ $count + 1 ]
    19. done

    移除捕获:

    trap  --  signals

    trap   -  signals

    pstree查看进程树

    pstree[选项]

    选项含义
    -p显示进程号
    -u显示所属用户

    lsof 列出进程调用的文件信息

    格式: lsof [选项]

    选项功能
    -c 字符串只列出以字符串开头的进程打开的文件
    +d 目录名列出某个目录中所有被进程调用的文件
    -u 用户名只列出某个用户的进程打开的文件
    -p pid列出某个 PID 进程打开的文件

    进程优先级:

    进程优先级由 PRL 和 NI 决定

    PRI 由内核决定,NI可以通过用户修改

    NI越小进程越快执行,NI越大进程越慢执行

     NI 值时有几个注意事项:

    • NI 范围是 -20~19。
    • 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
    • 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
    • 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。

    关键词用法
    nice [-n   NI]  命令  给要启动的进程赋予NI值
    renice  [NI] PID进程运行时修改其 NI 值

    当输入一条指令时 最后加上   &  代表放后台执行 
    当一条指令运行时输入以下指令:

    ctrl + z将前台执行的指令放到后台并暂停
    fg

    将后台中的命令调至前台继续运行

    bg将一个后台暂停的命令,继续运行

    fg %工作号  

    • %号可以省略
    • 直接 fg  的话,只会把带 + 的后台任务恢复到前台

    bg%工作号

    • % 可以省略

    nohup后台命令脱离终端运行

    nohup 命令的作用就是让后台工作在离开操作终端时,也能够正确地在后台执行

     格式: nohup   command   &

     

    由于nohup命令会解除终端与进程的关联,nohup命令会自动将STDOUT和STDERR的消息重定向到一个名为nohup.out的文件中。

      jobs 查看正在运行的作业

    格式: jobs [选项]

    选项描述
    -l

    列出进程的PID以及作业号

    -n

    只列出上次shell发出的通知后改变了状态的作业

    -p

    只列出作业的PID

    -r

    只列出运行中的作业

    -s

    只列出已停止的作业

    • -   代表下一个默认作业
    • +  代表默认作业

    注意: 任何时候只有一个 - 进程  和一个 +进程

    动态监控进程

    top 查看正在执行的进程,动态监控

    top [选项]

    选项功能
    -d   秒数指定top命令每隔几秒更新,默认为三秒
    -i  使top不显示闲置或僵尸进程
    -p指定监控进程ID来仅仅监控某个进程的状态

    上面的解释为:

     交互操作:输入top 后载页面中输入操作

    操作功能

    P

    以cpu使用率排序(默认)
    M以内存的使用率排序
    N以PID排序
    q

    退出top

    u

    之后再输入 用户名

    监视特定用户

    之后输入进程号

    终止特定进程
  • 相关阅读:
    docker与k8s的简介与用法
    Java Date加八小时
    ssh连win10报错:Permission denied (publickey,keyboard-interactive).
    【Rust日报】2022-09-13 Stabilize GAT
    day007--MySQL中的数值函数
    无线联网门锁为美好生活上好锁
    Python中Collections模块Counter用法
    开源数据质量解决方案——Apache Griffin入门宝典
    命令行获取chrome版本的多个方法
    SeAndroid 安全策略机制
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/126665457