Linux_基础_进程管理

显示进程

ps:显示系统执行的进程

语法:
    ps <选项> <参数> 

选项:
    -a                       # 显示所有终端机下执行的程序,除了阶段作业领导者之外。
    a                        # 显示现行终端机下的所有程序,包括其他用户的程序。
    -A                       # 显示所有程序。
    -c                       # 显示CLS和PRI栏位。
    c                        # 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
    -C<指令名称>             # 指定执行指令的名称,并列出该指令的程序的状况。
    -d                      # 显示所有程序,但不包括阶段作业领导者的程序。
    -e                      # 此选项的效果和指定"A"选项相同。
    e                       # 列出程序时,显示每个程序所使用的环境变量。
    -f                      # 显示UID,PPIP,C与STIME栏位。
    f                       # 用ASCII字符显示树状结构,表达程序间的相互关系。
    -g<群组名称>             # 此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
    g                       # 显示现行终端机下的所有程序,包括群组领导者的程序。
    -G<群组识别码>          # 列出属于该群组的程序的状况,也可使用群组名称来指定。
    h                       # 不显示标题列。
    -H                      # 显示树状结构,表示程序间的相互关系。
    -j或j                   # 采用工作控制的格式显示程序状况。
    -l或l                   # 采用详细的格式来显示程序状况。
    L                        # 列出栏位的相关信息。
    -m或m                   # 显示所有的执行绪。
    n                        # 以数字来表示USER和WCHAN栏位。
    -N                       # 显示所有的程序,除了执行ps指令终端机下的程序之外。
    -p<程序识别码>           # 指定程序识别码,并列出该程序的状况。
    p<程序识别码>            # 此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
    r                        # 只列出现行终端机正在执行中的程序。
    -s<阶段作业>              # 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
    s                        # 采用程序信号的格式显示程序状况。
    S                   # 列出程序时,包括已中断的子程序资料。
    -t<终端机编号>           # 指定终端机编号,并列出属于该终端机的程序的状况。
    t<终端机编号>            # 此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
    -T                    # 显示现行终端机下的所有程序。
    -u<用户识别码>           # 此选项的效果和指定"-U"选项相同。
    u                     # 以用户为主的格式来显示程序状况。
    -U<用户识别码>           # 列出属于该用户的程序的状况,也可使用用户名称来指定。
    U<用户名称>               # 列出属于该用户的程序的状况。
    v                        # 采用虚拟内存的格式显示程序状况。
    -w或w                   # 采用宽阔的格式来显示程序状况。 
    x                        # 显示所有程序,不以终端机来区分。
    X                        # 采用旧式的Linux i386登陆格式显示程序状况。
    -y                       # 配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
    --cols<每列字符数>       # 设置每列的最大字符数。
    --headers                # 重复显示标题列。
    --info                   # 显示排错信息。
    --lines<显示列数>        # 设置显示画面的列数。

实例:
    ps -u root               # 显示root进程用户信息
    ps -aux | grep sshd      # 查询显示sshd的进程信息
    ps -ef | more            # 以全格式显示当前所有的进程,分页显示

进程列表说明:
    USER                     # 用户名
    PID                      # 进程号
    %CPU                     # 进程占用CPU的百分比
    %MEM                     # 进程占用物理内存的百分比
    VSZ                      # 进程占用的虚拟内存大小(单位:KB)
    RSS                      # 进程占用的物理内存大小(单位:KB)
    TTY                      # 终端名称
    STAT                     # 进程状态(S:睡眠;s:该进程是回话的先导进程;N:低优先级的进程;<:高优先级的进程;R:正在运行;D:短期等待;Z:僵死进程;T:暂停执行...)
    START                    # 进程的启动时间
    TIME                     # 进程使用CPU的总时间
    COMMAND                  # 启动进程所用的命令和参数

pstree:以树状形式展示进程

语法:
    pstree <选项>

选项:
    -a                    # 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
    -c                    # 不使用精简标示法
    -G                    # 使用VT100终端机的列绘图字符
    -h                    # 列出树状图时,特别标明现在执行的程序
    -l                    # 采用长列格式显示树状图
    -n                    # 用程序识别码排序。预设是以程序名称来排序
    -p                    # 显示进程PID
    -u                    # 显示进程所属用户
    -U                    # 使用UTF-8列绘图字符

参数:
    进程名称               # 指定要杀死的进程名称。

实例:
    pstree -p             # 显示当前所有进程的进程号和进程id

top:动态监控,动态显示系统执行的进程

语法:
    top <选项> <参数>

选项:
    -b                           # 以批处理模式操作
    -c                           # 显示完整的治命令
    -d                           # 屏幕刷新间隔时间
    -I                           # 忽略失效过程
    -s                           # 保密模式
    -S                           # 累积模式
    -i<时间>                    # 设置间隔时间
    -u<用户名>                  # 指定用户名
    -p<进程号>                  # 指定进程
    -n<次数>                     # 循环显示的次数

实例:
    top                          # 显示进程信息
    top -d 5                     # 每5秒刷新一次进程信息    
    top -p 139                   # 显示进程号为139的进程信息
    top -n 10                    # 显示更新10次后退出

进入top界面后的操作:
    c                            # 显示完整的命令名
    d                            # 修改刷新时间
    h                            # 显示帮助画面,给出一些简短的命令总结说明
    k                            # 指定要杀死的进程
    u                            # 显示指定用户相关进程
    P                            # 按CPU使用排序
    M                            # 按内存使用排序
    F                            # 排序(进入新的界面,并选择排序的目标字段)
    R                            # 顺序或逆序
    H                            # 显示线程
    Z                            # 以多色彩显示top
    l/t/m                        # toggle/load/cpu/内存信息
    1                            # 显示多CPU的信息(多核机器上查看每个CPU的使用率)
    W                            # 保存当前top的配置

top说明:
    top - 11:52:15 up  6:14,  2 users,  load average: 0.00, 0.01, 0.05
    Tasks: 347 total,   2 running, 345 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  5.3 us, 15.8 sy,  0.0 ni, 78.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  1001336 total,   119236 free,   137632 used,   744468 buff/cache
    KiB Swap:  2097148 total,  2095644 free,     1504 used.   651196 avail Mem 

    # 说明
    top - 11:52:15                    # 当前系统时间
    6:14                              # 运行时间
    2 user                            # 当前登录用户数
    load average: 0.00, 0.01, 0.05    # 系统负载均衡,(0.00+0.01+0.05)/3 > 0.7,大于0.7系统就会有点卡
    Tasks: 347 total                  # 总进程数
    2 running                         # 正在运行的进程数
    345 sleeping                      # 睡眠的进程数
    0 stopped                         # 停止的进程数
    0 zombie                          # 僵死的进程数
    %Cpu(s):  5.3 us                  # 用户空间占用CPU百分比
    15.8 sy                           # 系统空间占用CPU百分比
    0.0 ni                            # 用户进程空间内改变过优先级的进程占用CPU百分比
    78.9 id                           # CPU处在空闲状态百分比
    0.0 wa                            # IO等待所占用的CPU百分比
    0.0 hi                            # 硬件中断占用CPU百分比
    0.0 si                            # 软件中断占用CPU百分比
    0.0 st                            # 丢失时间占用CPU百分比
    KiB Mem :  1001336 total          # 物理内存总量
    119236 free                       # 空闲内存总量
    137632 used                       # 使用的物理内存总量
    KiB Swap:  2097148 total          # 交换区总量
    2095644 free                      # 空闲交换区总量
    1504 used                         # 使用的交换区总量

终止进程

kill:使用进程ID杀死进程

语法:
    kill <选项> <参数> 

选项:
    -a                    # 当处理当前进程时,不限制命令名和进程号的对应关系
    -l <信息编号>          # 若不加<信息编号>选项,则-l参数会列出全部的信息名称
    -p                    # 指定kill 命令只打印相关进程的进程号,而不发送任何信号
    -s <信息名称或编号>     # 指定要送出的信息
    -u                    # 指定用户

参数:
    进程或作业识别号        # 指定要删除的进程或作业。

实例:
    kill -l                         # 列出所有信号名称
    kill -KILL 1234                 # 强制杀死进程ID为1234的进程
    kill -9 1234                    # 强制杀死进程ID为1234的进程
    kill -u tom                     # 杀死指定用户所有进程
    kill -9 $(ps -ef | grep tom)    # 杀死指定用户所有进程

常用信号说明:
    HUP         1        终端断线
    INT         2        中断(同 Ctrl + C)
    QUIT        3        退出(同 Ctrl + \)
    TERM       15        终止
    KILL        9        强制终止
    CONT       18        继续(与STOP相反, fg/bg命令)
    STOP       19        暂停(同 Ctrl + Z)

killall:使用进程名称杀死进程

语法:
    killall <选项> <参数> 

选项:
    -e                    # 对长名称进行精确匹配
    -l                    # 忽略大小写的不同
    -p                    # 杀死进程所属的进程组
    -i                    # 交互式杀死进程,杀死进程前需要进行确认
    -l                    # 打印所有已知信号列表
    -q                    # 如果没有进程被杀死。则不输出任何信息
    -r                    # 使用正规表达式匹配要杀死的进程名称
    -s                    # 用指定的进程号代替默认信号“SIGTERM”
    -u                    # 杀死指定用户的进程

参数:
    进程名称               # 指定要杀死的进程名称

实例:
    killall vi            # 杀死所有同名进程

猜你喜欢

转载自www.cnblogs.com/Small-music/p/9261802.html