首页 > 系统相关 >Linux基础21 进程介绍, 进程监控状态ps, 进程相关命令pstree,pgrep,pidof, 动态进程监控top, 进程中断概念, kill停止进程信号介绍pkill, killall

Linux基础21 进程介绍, 进程监控状态ps, 进程相关命令pstree,pgrep,pidof, 动态进程监控top, 进程中断概念, kill停止进程信号介绍pkill, killall

时间:2023-05-16 17:57:34浏览次数:50  
标签:oldboyedu sshd pkill 中断 nginx 监控 进程 root

1.进程的管理:

当我们运行一个程序,那么我们将该程序叫进程
进程 线程 协程

linux起服务会有给这个服务预分配的内存结构, windows没有

 

2.为什么要学进程管理?

为了管理架构的服务

 

3.程序和进程的区别

1)程序:开发写出来的代码,程序是永久存在的。
2)进程:它会随着程序的终止而销毁。

 

4.进程的生命周期

1.当父进程接收到任务调度时,会通过fork派生子进程来处理,那么子进程会继承父进程的衣钵。
2.子进程在处理任务代码时,父进程会进入等待的状态...(等待子进程给父进程返回结果)
3.如果子进程在处理任务过程中,父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理了,就变成了僵尸进程。
4.每个进程都会有自己的PID号,(process id)子进程则PPID

 

5.进程管理命令(静态管理):ps

a:显示所有与终端相关的进程
u:显示用户
x:显示所有与终端无关的进程

#用户
USER        
#进程号
PID 
#占CPU的百分比
%CPU 
#占内存的百分比
%MEM    
#虚拟内存
VSZ   
#物理内存
RSS 
#该进程在哪个终端运行
TTY
    tty1:        物理机的终端
    pts/0:        远程连接的终端
    ?:        内核运行的终端
    
#状态
STAT
    S:进入睡眠状态的进程 (等cpu处理完成或等待cpu处理)
    s:父进程
    R:正在运行的进程
    D:不可中断的进程 (比如磁盘IO无法终端, 除非kill -9强行杀死)
    N:优先级低
    <:优先级高
    l:多线程的
    +:在前台运行的进程
    T:暂停,停止的进程
    Z:僵尸进程
----------------------------
    L:页被锁进内存
    |:多进程的

#进程启动时间
START
#进程使用CPU的时间
TIME
#程序运行的命令    (方括号包着的是内核的进程)
COMMAND    

 

进程相关的命令:

1.按照某一列排序:

[root@oldboyedu ~]# ps aux --sort vsz

2.指定想查看的列 # o: 指定想要看到的列

[root@oldboyedu ~]# ps axo user,pid,vsz,command
[root@oldboyedu ~]# ps axo pid,nice,command    # nice优先级

3.查看子进程 # f:  查看子进程

[root@oldboyedu ~]# ps auxf |grep [n]ginx    # 本质上,相当于进程中有一个grep [n]ginx,但是查询的时候是,grep nginx(正则表达式的结果)
root     119884  0.0  0.1 125108  2256 ?        Ss   10:06   0:00 nginx: master process /usr/sbin/nginx
nginx    119885  0.0  0.1 125496  3140 ?        S    10:06   0:00  \_ nginx: worker process    # 有脐带\_, 就是子进程
nginx    119886  0.0  0.1 125496  3140 ?        S    10:06   0:00  \_ nginx: worker process
nginx    119887  0.0  0.1 125496  3140 ?        S    10:06   0:00  \_ nginx: worker process
nginx    119888  0.0  0.1 125496  3140 ?        S    10:06   0:00  \_ nginx: worker process

4.额外命令:pstree

查看进程树:
[root@oldboyedu ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─abrt-watch-log
        ├─abrtd
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─irqbalance
        ├─master─┬─pickup
        │        └─qmgr
        ├─nginx───4*[nginx]
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash───pstree
        │      └─sshd───bash───bash───bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        ├─vmtoolsd───{vmtoolsd}
        └─vsftpd

pgrep

#默认不加选项是查看进程的pid  pgrep(了解)

[root@oldboyedu ~]# pgrep -l -a nginx
[root@oldboyedu ~]# pgrep sshd    # 展示pid
119346
120226
120254
[root@oldboyedu ~]# pgrep -l sshd    # 追加名字
119346 sshd
120226 sshd
120254 sshd
[root@oldboyedu ~]# pgrep -l -a sshd    # 追加命令
119346 /usr/sbin/sshd -D
120226 sshd: root@pts/0    
120254 sshd: root@pts/1 
[root@oldboyedu ~]# pgrep -u root    # 以root用户运行

-a:查看进程的运行命令
-l:查看进程名字
-u:指定用户

pidof

[root@oldboyedu ~]# pidof sshd    # 列出pid
120254 120226 119346
[root@oldboyedu ~]# pidof nginx|xargs -n 1 kill -9  # 通过pidof名直接杀掉进程, xargs -n竖着排序, 一行显示几个
[root@oldboyedu ~]# pidof nginx|xargs kill -9  # 通过pidof名直接杀掉进程

5.top命令 (htop命令可以点击)

第一行内容:
        当前系统时间           服务器运行时间     有3个用户在登录        
top -     10:54:23             up 1 day, 17:56,  3 users,  
#平均负载(系统包含cpu和io)
load average: 0.00, 0.01, 0.05

第二行内容:
总共122个任务      1个正在运行(R)      121个进入睡眠状态的(S)    没有停止(T)    0个僵尸进程(Z)
Tasks: 122 total,   1 running,         121 sleeping,           0 stopped,       0 zombie

第三行内容:
        用户态   内核态     优先级     cpu空闲      等待进程占用cpu(wait)    硬中断(硬中断请求占cpu百分比)    软中断(软中断请求占cpu百分比)     虚拟机占用物理机CPU的百分比
%Cpu(s):  0.1 us,  0.1 sy,    0.0 ni,    99.8 id,            0.0 wa,          0.0 hi,                     0.0 si,                       0.0 st
用户态: 用户进程占cpu多少
linux上可以用的虚拟机软件: kvm,virtualbox
硬中断和软中断在企业中不用看这两个值

第四行:内存                                        缓冲区/缓存区
KiB Mem :  2028116 total,   150780 free,   144108 used,  1733228 buff/cache

第五行:swap虚拟内存
KiB Swap:  2097148 total,  2097148 free,        0 used.  1645080 avail Mem 

第六行:
进程号        用户      优先级    虚拟内存    物理内存    共享内存   状态    占CPU的百分比  占内存的百分比
PID         USER      PR  NI    VIRT       RES        SHR     S      %CPU         %MEM     

运行时间        进程的运行命令
TIME+         COMMAND

top命令使用

    -d:指定刷新时间    # top -d 1
    -p:指定pid    # top -p 122252 查看pid为122252的进程   top -p 122252,122253 查看2个pid进程
    -u:指定用户    # top -u root 查看用户为root的进程
    -b:保存到文件中    # top -d 1 -u postfix -b -n 2 > /tmp/top.txt 将2次显示的信息保存到top.txt
    -n:指定次数
    
    z:高亮显示        # 按一次高亮显示,再按一次退出高亮
    b:运行的进程,高亮显示
    1:  显示各个cpu使用情况    # 初始是显示所有cpu的平均情况
    s:修改刷新时间
    M:按照内存排序
    P:按照CPU排序
    R:倒叙
    f:自定义显示字段        # 然后按空格选择是够要显示该列, 按q退出
    q:退出
    k: 杀进程            # 输入pid, 输入信号9

 

中断

中断:硬中断
中断是系统用来影响硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来影响设备的请求
硬中断执行过程中,无法再次接收硬中断请求处理


软中断:
事实上,为了解决中断处理程序执行过长的和丢失中断的问题,Linux将中断处理过程分成了两个阶段:
第一阶段:用来快速处理(硬中断)中断,它在中断禁止模式下运行,主要处理跟硬件紧密相关工作
第二阶段:用来延迟处理第一阶段未完成的工作,通常以内核线程的方式运行。

 

 

kill信号管理:

    1:重新加载    (不结束进程, 重新加载配置文件)
    2:类似于ctrl + c
    3:正常终止进程(让进程退出) # nginx等停止都是用该信号
    9:强制杀死(少用)(nginx主进程杀死,子进程还在变为僵尸进程)
    15:默认信号,进程终止    # kill 122529默认为信号15
    -------------------------------------
    18:重新唤起停止的进程    # kill -18 82083
    19:直接暂停        # kill -19 82083
    20:把进程放到后台并暂停

pkill

    -t:指定终端(杀掉终端运行的命令)    (tty查终端名字,w查终端的号)  # pkill -t pts/2
    -9:强制,把终端运行的命令和终端一并杀掉    # pkill -9 -t pts/2

killall

    接进程的名字    # killall mysqld, killall sshd   (因为程序是后台守护进程的方式启动,所有名字后有d)

 

标签:oldboyedu,sshd,pkill,中断,nginx,监控,进程,root
From: https://www.cnblogs.com/ludingchao/p/17406379.html

相关文章

  • 【Python】多进程 多线程
    1.进程Process1.1多进程#-*-coding:UTF-8-*-"""#计算8的20次方"""importtimeimportosfrommultiprocessingimportProcessimportosimporttimedeflong_time_task(i):print('子进程:{}-任务{}'.format(os.getpid()......
  • 一种通用的业务监控触发方案设计 | 京东云技术团队
    一、背景业务监控是指通过技术手段监控业务代码执行的最终结果或者状态是否符合预期,实现业务监控主要分成两步:一、在业务系统中选择节点发送消息触发业务监控;二、系统在接收到mq消息或者定时任务调度时,根据消息中或者任务中的业务数据查询业务执行的结果或状态并与业务预期的结果相......
  • 树莓派安装docker,并在PC端监控,启动swarm集群
    0.前期准备硬件及OS:  路由器,  笔记本wifi ,  虚拟机Centos7,  6个树莓派3B:OS为RaspberryPi,node1是64位的aarch64,剩下都是32位armv7l,使用wifi。软件:  docker:v23.0.6、  portainer-ce1.虚拟机和主机同网段  首先在控制面板->网络和Internet->网络......
  • 一种通用的业务监控触发方案设计
    一、背景业务监控是指通过技术手段监控业务代码执行的最终结果或者状态是否符合预期,实现业务监控主要分成两步:一、在业务系统中选择节点发送消息触发业务监控;二、系统在接收到mq消息或者定时任务调度时,根据消息中或者任务中的业务数据查询业务执行的结果或状态并与业务预期的结果......
  • prometheus 监控 exsi vcenter,kvm libvirt
    转自:https://www.scriptjc.com/article/1284 prometheus监控exsivcenter,kvmlibvirt来源:原创时间:2021-10-20作者:脚本小站分类:Linux监控vcenter:github地址:1https://github.com/pryorda/vmware_exporter启动:1234567#!/bin/bash ......
  • tensorrt yolov5 QT 智能监控平台。 yolov5使用 tens
    tensorrtyolov5QT智能监控平台。yolov5使用tensorrt推理封装成dll,支持多线程多任务,可同时并行加载不同模型,同时检测。Qt开发的监控平台,支持不同平台部署,视频监控,录像回放,电子地图,日志和系统设置应有尽有。视觉监控,同时加载16路视频,同时并行检测任务,可网络流可本地视频。ID:316......
  • 3.OS-Virtualization|进程API
    我的总结fork,父子进程的fork返回子进程的id,而子进程的fork不会再创建进行,返回0,弱出错返回-1wait,等待子进行结束,保证结果的正确性exec,与fork类型,但没有重新调用,而是直接覆盖当前的程序,初始化所有堆和栈空间执行API设计哲学:做正确的事,分离抽象。重定向其他:学会使用手册man......
  • 王道--第二章 进程管理
    2.1.1进程的概念、组成、特征程序:静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。进程:动态的,是程序的一次执行过程。同一个程序多次执行会对应多个进程。一个进程实体(进程映像)由PCB、程序段、数据段组成;进程实体是静态的;反映了进程在某一时刻的状态,可以看作进程......
  • 机房空调数据采集监控解决方案
    行业背景随着企业数字化和信息化水平的不断提高,许多企业都建立了独立的计算机机房,承担越来越重要的作用。然而机房设备受到周围环境的影响是巨大的,一旦机房环境出现异常,往往会影响到机房设备的运行、数据的传输存储等,甚至导致电气火灾与经济损失,因此,对机房环境进行实时数据采集与监......
  • elk日志收集之rsyslog软连接监控文件深度坑
    业务中通过rsyslog监控本地文件收集了一些redis和mc的慢日志,推到elk集群分析,这些日志一天一个文件,每晚零点5分通过计划任务用软连接的方式将新的文件固定到指定文件下,但是最近发现日志丢了很多,分析中发现了一个深坑,先说下现有的配置:rsyslog的配置如下,监控固定的文件:local6.*......