zoukankan      html  css  js  c++  java
  • Linux 进程管理 笔记

    https://www.ibm.com/developerworks/cn/linux/l-linux-process-management/index.html
    Linux 进程管理剖析

    进程可以是短期的(从命令行执行的一个命令),
    也可以是长期的(一种网络服务)

    在用户空间,进程是由进程标识符(PID)表示的。
    从用户的角度来看,一个 PID 是一个数字值,可惟一标识一个进程。

    在用户空间,创建进程可以采用几种方式。
    可以执行一个程序(这会导致新进程的创建),
    也可以在程序内,调用一个 fork 或 exec 系统调用。
    fork 调用会导致创建一个子进程,
    而 exec 调用则会用新程序代替当前进程上下文。

    ===================================
    https://linux.cn/article-5557-1.html
    12个进程管理命令介绍

    查看所有运行中的进程
    查看进程消耗资源
    定位个别进程并且对其执行指定操作
    改变进程的优先级
    杀死指定进程
    限制进程可用的系统资源等

    1. ps
    'ps'是Linux 中最基础的浏览系统中的进程的命令。
    能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等。
    ps -o pid,ppid,comm
    ps -a - 列出所有运行中/激活进程
    ps -ef |grep - 列出需要进程
    ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等

    2. pstree
    linux中,每一个进程都是由其父进程创建的。
    此命令以可视化方式显示进程,通过显示进程的树状图来展示进程间关系。
    如果指定了pid了,那么树的根是该pid,不然将会是init(pid: 1)。

    3. top
    ‘top’是一个更加有用的命令,可以监视系统中不同的进程所使用的资源。
    它提供实时的系统状态信息。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。
    可以使用这些显示指示出资源使用量。

    4. htop
    htop与top很类似,但是htop是交互式的文本模式的进程查看器。
    它通过文字图形化地显示每一个进程的CPU和内存使用量、swap使用量。
    使用上下光标键选择进程,F7和F8改变优先级,F9杀死进程。
    Htop不是系统默认安装的,所以需要额外安装。

    5. nice
    通过nice命令的帮助,用户可以设置和改变进程的优先级。
    提高一个进程的优先级,内核会分配更多CPU时间片给这个进程。
    默认情况下,进程以0的优先级启动。
    进程优先级可以通过top命令显示的NI(nice value)列查看。
    nice <优先值> <进程名> - 通过给定的优先值启动一个程序

    6. renice
    renice命令类似nice命令。使用这个命令可以改变正在运行的进程优先值。
    注意,用户只能改变属于他们自己的进程的优先值。
    renice -n -p - 改变指定进程的优先值
    renice -u -g - 通过指定用户和组来改变进程优先值

    7. kill
    这个命令用于发送信号来结束进程。
    如果一个进程没有响应杀死命令,这也许就需要强制杀死,使用-9参数来执行。
    注意,使用强制杀死的时候一定要小心,因为进程没有时机清理现场,也许写入文件没有完成。
    如果我们不知道进程PID或者打算用名字杀死进程时候,killall就能派上用场。
    kill <pid>
    kill -9 <pid>
    killall -9 - 杀死所有拥有同样名字的进程
    信号可以通过 kill 传递给进程,信号值以下三个比较重要。
    -1 重新加载 (SIGHUP)
    -9 立刻删除 (SIGKILL)
    -15 正常终止(SIGTERM)

    如果你使用kill,你需要知道进程ID号。
    pkill是类似的命令,但使用模式匹配,如进程名,进程拥有者等。
    pkill <进程名>

    8. ulimit
    该命令用于控制系统资源在shell和进程上的分配量。
    对于系统管理员是最有用的,可以管理重度使用和存在性能问题的系统。
    限制资源大小可以确保重要进程持续运行,其他进程不会占用过多资源。
    ulimit -a - 显示当前用户关联的资源限制
    -f - 最大文件尺寸大小
    -v - 最大虚拟内存大小(KB)
    -n - 增加最大文件描述符数量
    -H : 改变和报告硬限制
    -S : 改变和报告软限制

    9. w
    w 提供当前登录的用户及其正在执行的进程的信息。
    显示信息头包含信息,如当前时间、系统运行时长、登录用户总数、过去的1,5,15分钟内的负载均
    衡数。
    基于这些用户信息,用户在终止不属于他们的进程时要小心。
    who是类似命令,提供当前登录用户列表、系统启动时间、运行级别等。
    whoami 命令输出当前用户ID

    10. pgrep
    pgrep的意思是"进程号全局正则匹配输出"。
    该命令扫描当前运行进程,然后按照命令匹配条件列出匹配结果到标准输出。
    对于通过名字检索进程号是很有用。
    pgrep -u mint sh
    这个命令将会显示用户为‘mint’和进程名为‘sh’的进程ID。

    11. fg , bg
    有时,命令需要很长的时间才能执行完成。
    对于这种情况,我们使用‘bg’命令可以将任务放在后台执行,而用‘fg’可以调到前台来使用。
    我们可以通过‘&’在后台启动一个程序:
    find . -name *iso > /tmp/res.txt &
    一个正在运行的程序也可以通过“CTRL+Z”和“bg”命令组合放到后台运行。
    find . -name *iso > /tmp/res.txt & - 启动一个程序
    ctrl+z - 挂起当前执行程序
    bg - 将程序放到后台运行
    我们可以使用‘jobs’命令列出所有后台进程。
    jobs
    使用‘fg’命令可以将后台程序调到前台执行。
    fg %进程id

    12. ipcs
    ipcs命令报告进程间通信设施状态。(共享内存,信号量和消息队列)
    用-p参数联合-m、-s或-q使用,可以获得相关的进程间通信的进程ID。
    ipcs -p -m

    vmstat不算是管理,但是可以使用vmstat查看进程的上下文切换

    free:查看内存使用状况

    https://linoxide.com/how-tos/linux-ps-command-examples/
    =======================================

    https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/05_process_manage.html
    Docs » Linux基础 » 5. 进程管理工具

    =====================================
    http://www.ha97.com/1036.html
    Linux 进程管理详解

    =========================

  • 相关阅读:
    extern C的作用详解
    UIWindow in iOS
    iOS会议和组织
    Fantageek翻译系列之《使用Autolayout显示变化高度的UITableViewCell》
    KVO的概述的使用
    Struts2 基于XML校验(易百教程)
    Maven项目中添加JDBC驱动
    org.dom4j.DocumentException: null Nested exception: null解决方法
    struts2中的数据类型自动转换
    struts2的拦截器
  • 原文地址:https://www.cnblogs.com/sztom/p/10201894.html
Copyright © 2011-2022 走看看