Linux--进程管理和性能相关工具

news2024/9/23 9:35:43

文章目录

  • 进程状态
    • 进程的基本状态
      • 其他更多态
        • 运行(Running或R)
        • 可中断睡眠(Interruptible Sleep 或 S)
        • 不可中断睡眠(Uninterruptible Sleep 或 D)
        • 停止(Stopped 或 T)
        • 僵尸(Zombie 或 Z)
    • 状态转换
  • 进程管理相关工具
    • 进程树pstree
      • pstree -p
      • pstree -T
    • 进程信息ps
      • ps输出属性
      • 查看进程的父子关系
      • 查看进程的特定属性
      • 按cpu利用率倒序排序
      • 按内存倒序排序
    • prtstat--查看进程信息
      • prtstat -r PID
    • 设置和调整进程优先级
      • nice命令
      • renice命令
    • 搜索进程
      • pgrep
      • pidof
  • 性能监控相关工具
    • uptime--负载查询
    • mpstat--CPU相关统计
    • top/htop--查看进程实时状态
    • free--内存空间
    • pmap--进程对应的内存映射
    • vmstat--虚拟内存信息
    • iostat--统计CPU和设备IO信息
    • iotop--监视磁盘I/O
  • 网络性能工具
    • iftop--显示网络带宽使用情况
    • nload--查看网络实时吞吐量
    • nethogs--查看进程网络带宽的使用情况
    • iptraf-ng--网络监视工具
  • 系统资源统计--dstat
  • lsof--查看进程打开文件
  • Centos 8新特性cockpit
  • 信号发送--kill
    • 常用信号
    • kill -1 重新加载配置文件
    • 查看HUP信号
  • signal is 0
  • 前后台执行作业
    • 让作业运行于后台
      • &
      • nohup
  • 并行运行
    • 多组命令并行执行
    • 并行扫描在线主机

进程状态

在这里插入图片描述

进程的基本状态

进程的基本状态
  1.创建状态:进程在创建时需要申请一个空白PCB(process control block进程控制块),
            向其中填写控制和管理进程的信息,完成资源分配。
            如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态。
  
  2.就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行。
  
  3.执行状态:进程处于就绪状态被调度后,进程进入执行状态。
  
  4.阻塞状态:正在执行的进程由于某些事件(Io请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。
            在满足请求时进入就绪状态等待系统调用。
    
  5.终止状态:进程结束,或出现错误,或被系统终止,进入终止状态,无法再执行。

其他更多态

运行态: running
就绪态: ready
睡眠态: 分为两种,可中断: interruptable,不可中断: uninterruptable
停止态: stopped,暂停于内存,但不会被调度,除非手动启动
僵死态: zombie,僵尸态,结束进程,父进程结束前,子进程不关闭,杀死父进程可以关闭僵死态的子进程
运行(Running或R)
1.运行(Running 或 R)
    状态描述: 进程正在CPU上执行或正在准备执行。只有一个进程可以真正处于正在执行状态,而其他准备执行的进程处于就绪状态。
    特点: 这种状态的进程占用CPU时间片。多任务操作系统通过快速切换这些进程,使得用户感觉到多个进程在同时运行。
可中断睡眠(Interruptible Sleep 或 S)
2.可中断睡眠(Interruptible Sleep 或 S)
    状态描述: 进程正在等待某个条件的满足,比如I/O操作的完成。当条件满足时,进程会被唤醒并进入就绪状态。
    特点: 这种状态下的进程可以响应信号(如终止信号),从而被唤醒。
不可中断睡眠(Uninterruptible Sleep 或 D)
3.不可中断睡眠(Uninterruptible Sleep 或 D)
    状态描述: 进程等待硬件条件的满足,如磁盘I/O操作的完成。这类进程不能被信号唤醒,必须等待操作完成。
    特点: 由于进程在等待硬件资源,所以处于这种状态的时间通常较短。如果有进程长期处于该状态,可能表明系统存在硬件或驱动问题。
停止(Stopped 或 T)
4.停止(Stopped 或 T)
    状态描述: 进程由于接收到SIGSTOP、SIGTSTP等信号而暂停执行。此状态通常由调试器(如GDB)或用户手动触发(如Ctrl+Z)。
    特点: 停止的进程不会占用CPU资源,但仍保留在内存中。可以通过SIGCONT信号恢复执行。
僵尸(Zombie 或 Z)
5.僵尸(Zombie 或 Z)
    状态描述: 进程已经终止,但其父进程尚未调用wait()等系统调用来回收其资源。僵尸进程保留在进程表中,直到父进程处理它。
    特点: 僵尸进程不占用任何系统资源(如CPU、内存),但占用进程表条目。大量僵尸进程可能会耗尽进程表条目,影响系统的正常运行。

范例:僵尸态

[root@rocky ~]# bash
[root@rocky ~]# echo $BASHPID
2440
[root@rocky ~]# echo $PPID
2360

#将父进程设为停止状态
[root@rocky ~]# kill -19 2360

#杀死子进程,使其进入僵尸态
[root@rocky ~]# kill -9 2440

ps aux后可以看到父进程stat为Ts,子进程stat为Z+
在这里插入图片描述
终止僵尸态

#方法1:恢复父进程
[root@rocky ~]# kill -18 2360

#方法2:杀死父进程
[root@rocky ~]# kill -18 2360

我选择了恢复父进程,再次使用ps aux观察时,就没有僵尸进程了
在这里插入图片描述

状态转换

运行―—>就绪:
   1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;
   2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态;
            
就绪―—>运行: 运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU;

运行――>阻塞: 正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求;

阻塞——>就绪: 进程所等待的事件已经发生,就进入就绪队列;

以下两种状态是不可能发生的:
  阻塞―—>运行: 即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取;
  就绪——>阻塞: 就绪态根本就没有执行,谈不上进入阻塞态。

进程管理相关工具

Linux系统状态的查看及管理工具:
  pstree、 ps、 pidof、 pgrep、 top、 htop、 glance、 pmap、 vmstat、 dstat
  kill、 pkill、 job、 bg、 fg、 nohup

进程树pstree

pstree可以用来显示进程的父子关系,以树形结构显示。

格式:

pstree  [OPTION] [ PID | USER ]

常用选项:

-p  显示进程编号PID;
-T  不显示线程thread ,默认显示线程
-u  显示用户切换
-H  pid高亮显示指定进程及其前辈进程

在centos8上使用dnf安装pstree
在这里插入图片描述

pstree -p

在这里插入图片描述

pstree -T

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进程信息ps

ps 即process state,可以显示进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中。

常用选项

a 选项包括所有终端中的进程
× 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程树,相当于 --forest
k |--sort 属性 对属性排序,属性前加 –表示倒序
o 属性....选项显示定制的信息 pid、 cmd、 %cpu、 %mem

L显示支持的属性列表
-c cmdlist指定命令,多个命令用,分隔
-L 显示线程
-e 显示所有进程,相当于-A
-f 显示完整格式程序信息
-F 显示更完整格式的进程信息
-H 以进程层级格式显示进程相关信息
-u userlist指定有效的用户ID或名称
-u userlist指定真正的用户ID或名称
-g gid或groupname指定有效的gid或组名称
-G gid或groupname指定真正的gid或组名称
-p pid 显示指pid的进程
--ppid pid显示属于pid的子进程
-t ttylist指定tty ,相当于t
-M 显示SELinux信息,相当于z

ps输出属性

C: ps -ef 显示列C表示cpu利用率
VSZ: virtual memory size,虚拟内存集,线性内存
RSS: Resident size,常驻内存集
STAT:进程状态
     R: running
     S: interruptable sleeping
     D: uninterruptable sleeping
     T: stopped
     Z: zombie
     +: 前台进程
     l: 多线程进程
     L: 内存分页并带锁
     N: 低优先级进程
     <: 高优先级进程
     s: session leader,会话(子进程〉发起者工: Idle kerne7 thread,centos 8新特性
ni: nice值
pri: priority优先级
rtprio: 实时优先级
psr: processor CPU编号

在这里插入图片描述
在这里插入图片描述

查看进程的父子关系

ps -auxf
ps auxf  
加不加端横杠都可以,linux都支持,两者效果是一样的,

在这里插入图片描述

查看进程的特定属性

ps axo pid,cmd,%mem,%cpu

在这里插入图片描述

按cpu利用率倒序排序

ps aux k -%cpu

在这里插入图片描述
在这里插入图片描述

按内存倒序排序

ps axo pid,cmd,%cpu,%mem --sort -%mem

在这里插入图片描述

prtstat–查看进程信息

可以显示进程信息,来自于psmisc包

格式:
  prtstat [options] PID ...

在这里插入图片描述

prtstat -r PID

-r raw格式显示

在这里插入图片描述

设置和调整进程优先级

进程优先级调整
  1.静态优先级:100-139
  2.进程默认启动时的nice值为0,优先级为120
  3.只有根用户才能降低nice值(提高优先性)

nice命令

以指定的优先级来启动进程
  nice [OPTION] [COMMAND [ARG]...]
  -n,--adjustment=N add integer N to the niceness (default 10)

在这里插入图片描述
在这里插入图片描述

renice命令

可以调整正在执行中的进程的优先级

renice [-n] priority pid ...

在这里插入图片描述

搜索进程

按条件搜索进程
   ps 选项 |grep 'pattern'灵活
   pgrep 按预定义的模式
   /sbin/pidof 按确切的程序名称查看pid

在这里插入图片描述

pgrep

命令格式
  pgrep [options] pattern

常用选项

  -u uid: effective user,生效者
  -u uid: real user,真正发起运行命令者
  -t terminal: 与指定终端相关的进程
  -l: 显示进程名
  -a: 显示完整格式的进程名
  -P pid: 显示指定进程的子进程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pidof

获取进程编号
在这里插入图片描述
找到mongod的程序路径
在这里插入图片描述

[root@centos8 ~]#pidof bash
19035 18813 187891251

[root@centos7 ~]#cat ping.sh
# !/bin/bash
ping 127.0.0.1

#centos8执行命令可以可以查看到pid
[root@centos7 ~]#pidof ping.sh

#ping.sh必须有shebang机制,否则pidof -x也无法查找到  所以写脚本是,为什么要遵守规范
[root@centos7 ~]#pidof -x ping.sh
19035

性能监控相关工具

对于Linux系统来说,和性能相关的四个核心组件包括CPU、内存、磁盘、网络。Linux提供了众多工具来帮助我们了解这四个核心组件是否达到了性能瓶颈。

uptime–负载查询

/proc/uptime包括两个值,单位s
  1.系统启动时长
  2.空闲进程的总时长(按总的CPU核数计算)
uptime和w显示以下内容
  1.当前时间
  2.系统已启动的时间
  3.当前上线人数
  4.系统平均负载(1、5、15分钟的平均负载,一般不会超过1,超过5时建议警报)
    系统平均负载:指在特定时间间隔内运行队列中的平均进程数,
               通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。
               如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题
   如: linux主机是1个双核CPU,当Load Average为6的时候说明机器已经被充分使用         

在这里插入图片描述

# man w
W(1)                                                                User Commands                                                                W(1)

NAME
       w - Show who is logged on and what they are doing.

SYNOPSIS
       w [options] user [...]

DESCRIPTION
       w  displays information about the users currently on the machine, and their processes.  
       The header shows, in this order, the current time, how
       long the system has been running, how many users are currently logged on, 
       and the system load averages for the past 1, 5, and 15 minutes.

       The following entries are displayed for 
       each user: login name, the tty name, the remote host, login time, idle time, JCPU, PCPU, 
       and the command line of their current process.

       The  JCPU  time  is  the time used by all processes attached to the tty.  
       It does not include past background jobs, but does include currently
       running background jobs.

       The PCPU time is the time used by the current process, named in the "what" field.

mpstat–CPU相关统计

来自于sysstat包

yum -y install sysstat

在这里插入图片描述

[root@rocky ~]# mpstat
Linux 4.18.0-348.el8.0.2.x86_64 (rocky) 	08/22/2024 	_x86_64_	(4 CPU)

01:50:59 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
01:50:59 PM  all    0.23    0.00    0.36    0.01    0.10    0.06    0.00    0.00    0.00   99.24

在这里插入图片描述

top/htop–查看进程实时状态

和ps执行之后就退出了,top是实时的监控
在这里插入图片描述
htop命令是增强版的TOP命令,来自EPEL源,比top功能更强

redhat安装htop使用dnf
在这里插入图片描述
在这里插入图片描述

free–内存空间

free可以显示内存空间使用状态

格式:
  free [OPTION]

常用选项:
  -b 以字节为单位
  -m 以MB为单位
  -g 以GB为单位
  -h 易读格式
  -o 不显示-/+buffers/cache行
  -t 显示RAM + swap的总和
  -s n 刷新间隔为n秒
  -c n 刷新n次后即退出

向/proc/sys/vm/drop_caches中写入相应的修改值,会清理缓存。建议先执行sync (sync命令将所有未写的系统缓冲区写到磁盘中,包含已修改的i-node、已延迟的块I/O和读写映射文件)。执行echo1、2、3至/proc/sys/vm/drop_caches,达到不同的清理目的

如果因为是应用有像内存泄露、溢出的问题时,从swap的使用情况是可以比较快速可以判断的,但通过执行free反而比较难查看。但核心并不会因为内存泄露等问题并没有快速清空buffer或cache (默认值是0),生产也不应该随便去改变此值。

一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的。当发生内存不足、应用获取不到可用内存、OOM错误等问题时,还是更应该去分析应用方面的原因,否则,清空buffer,强制腾出free的大小,可能只是把问题给暂时屏蔽了。

排除内存不足的情况外,除非是在软件开发阶段,需要临时清掉buffer,以判断应用的内存使用情况;或应用已经不再提供支持,即使应用对内存的时候确实有问题,而且无法避免的情况下,才考虑定时清空buffer。
在这里插入图片描述
生产环境中,一般不要随意释放缓存,缓存空间占用的越多说明缓存被充分利用了。

man proc

在这里插入图片描述
man需要安装man-pages
在这里插入图片描述

pmap–进程对应的内存映射

找到进程调用的系统库

pmap pid

常用选项
  -x:显示详细格式的信息

在这里插入图片描述

pmap -x pid

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

vmstat–虚拟内存信息

格式

格式:
  vmstat [options] [de1ay [count]]

在这里插入图片描述

显示项说明

显示项说明:
procs:
  r: 可运行(正运行或等待运行)进程的个数,和核心数有关
  b: 处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
memory:
  swpd:交换内存的使用总量
  free:空闲物理内存总量
  buffer:用于buffer的内存总量
  cache:用于cache的内存总量
swap :
  si:从磁盘交换进内存的数据速率(kb/s)
  so:从内存交换至磁盘的数据速率(kb/s)
io:
  bi:从块设备读入数据到系统的速率(kb/s)
  bo:保存数据至块设备的速率
system:
  in: interrupts 中断速率,包括时钟
  cs: context switch  进程切换速率
cpu:
  us :Time spent running non-kernel code
  sy: Time spent running kernel code
  id: Time spent idle. Linux 2.5.41前,包括IO-wait time .
  wa: Time spent waiting for Io.2.5.41前,包括in idle.
  st: Time stolen from a virtual machine.2.6.11前,unknown .
选项:
  -s 显示内存的统计数据

在这里插入图片描述
在这里插入图片描述
动态跟踪

vmstat 1  #也就是每秒显示一次

在这里插入图片描述

iostat–统计CPU和设备IO信息

iostat可以提供更丰富的IO性能状态数据此工具由sysstat包提供

常用选项:
  -c 只显示CPU行
  -d 显示设备〈磁盘)使用状态
  -k 以千字节为为单位显示输出
  -t 在输出中包括时间戳
  -× 在输出中包括扩展的磁盘指标

在这里插入图片描述
在这里插入图片描述

tps: 该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)"一次传输"意思是"一次I/o请求"。多个逻辑请求可能会被合并为"一次I/O请求""一次传输"请求的大小是未知的。
kB_read/s: 每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s: 每秒向设备(drive expressed)写入的数据量;
kB_read: 读取的总数据量;
kB_wrtn: 写入的总数量数据量;这些单位都为Kilobytes。

在这里插入图片描述
在这里插入图片描述

输出说明
  r/s: 每秒合并后读的请求数
  w/s: 每秒合并后写的请求数
  rsec/s: 每秒读取的扇区数;
  wsec/s:  每秒写入的扇区数。
  rKB/s:  The number of read requests that were issued to the device per second;
  wKB/s:  The number of write requests that were issued to the device per second;
  
  rrqm/s: 每秒这个设备相关的读取请求有多少被Merge了
         (当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同B1ock的数据,FS会将这个请求合并Merge) ;
  wrqm/s: 每秒这个设备相关的写入请求有多少被Merge了。
  
  %rrqm: The percentage of read requests merged together before being sent to thedevice.
  %wrqm: The percentage of write requests merged together before being sent to thedevice.
  
  avgrq-sz: 平均请求扇区的大小
  avgqu-sz: 是平均请求队列的长度。毫无疑问,队列长度越短越好。
  
  await: 每一个Io请求的处理的平均时间(单位是微秒毫秒)。
      这里可以理解为Io的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
      这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
    
  svctm: 表示平均每次设备I/o操作的服务时间(以毫秒为单位)。
      如果svctm的值与await很接近,表示几乎没有I/o等待,磁盘性能很好,如果await的值远高于svctm的值,则表示工/o队列等待太长,系统上运行的应用程序将变慢。
  
  %util:  在统计时间内所有处理IO时间,除以总共统计时间。
      例如,如果统计间隔1秒,该设备有0.8秒在处理工o,而0.2秒闲置,那么该设备的‰util = 0.8/1=80%,所以该参数暗示了设备的繁忙程度。
      一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%‰uti1是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

iotop–监视磁盘I/O

iotop命令来自于iotop包,是一个用来监视磁盘I/O使用状况的top类工具iotop具有与top相似的UI,其中包括PID、用户、IO、进程等相关信息,可查看每个进程是如何使用IO。
在这里插入图片描述

iotop输出
  第一行: Read和Write速率总计
  第二行: 实际的Read和Write速率
  第三行: 参数如下:
         1.线程ID(按p切换为进程ID)
         2.优先级
         3.用户
         4.磁盘读速率
         5.磁盘写速率
         6.swap交换百分比
         7.IO等待所占的百分比

iotop常用参数

iotop常用参数
  -o, --only 只显示正在产生I/O的进程或线程,除了传参,可以在运行过程中按o生效
  -b, --batch 非交互模式,一般用来记录日志
  -n NUM, --iter=NUM 设置监测的次数,默认无限。在非交互模式下很有用
  -d SEc, --delay=SEC 设置每次监测的间隔,默认1秒,接受非整形数据例如1.1
  -p PID, --pid=PID指定监测的进程/线程
  -u USER, --user=USER 指定监测某个用户产生的I/O
  -P, --processes仅显示进程,默认iotop显示所有线程
  -a, --accumulated显示累积的I/O,而不是带宽
  -k, --kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用
  -t, --time 加上时间截,非交互非模式
  -q, --quiet 禁止头几行,非交互模式,有三种指定方式
  -q 只在第一次监测时显示列名
  -qq 永远不显示列名
  -qqq 永远不显示I/O汇总

网络性能工具

iftop–显示网络带宽使用情况

iftop通过EPEL源的iftop包,如果没有epel源,需要先配置。可参考阿里镜像站的配置

EPEL配置:https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11j89S9G

下载新epel repo 到/etc/yum.repos.d/

yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

在这里插入图片描述
iftop
在这里插入图片描述
在这里插入图片描述
模拟下大网络带宽占用
在这里插入图片描述
由此可以看出,157和156的主机之间的网络吞吐量一目了然,网络带宽看的很清楚。将来工作中,如果发现机器网络比较忙,此时就可以很明确的查出和你机器网卡吞吐量高的ip地址。也可以发现异常高的黑客ip,从而禁止该黑客ip,禁止它占你的网络带宽,从而搞垮你的机器。

nload–查看网络实时吞吐量

yum -y install nload

在这里插入图片描述

nethogs–查看进程网络带宽的使用情况

NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。查看应用程序的网络带宽使用情况。

yum -y install nethogs

执行nethogs
在这里插入图片描述

iptraf-ng–网络监视工具

yum -y install iptraf-ng

执行iptraf-ng
在这里插入图片描述
选择监控网卡
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统资源统计–dstat

dstat由pcp-system-tools包提供,但安装dstat包即可,可用于代替vmstat,iostat功能

yum -y install dstat

在这里插入图片描述
在这里插入图片描述

lsof–查看进程打开文件

yum -y install lsof

lsof: list open files,查看当前系统文件的工具。在linux环境下,一切皆文件,用户通过文件不仅可以访问常规数据,还可以访问网络连接和硬件如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符.

命令选项:

命令选项:
  -a: 列出打开文件存在的进程
  -c<进程名>: 列出指定进程所打开的文件
  -g: 列出GID号进程详情
  -d<文件号>: 列出占用该文件号的进程
  +d<目录>: 列出目录下被打开的文件
  +D<目录>: 递归列出目录下被打开的文件
  -n<目录>: 列出使用NFS的文件
  -i<条件>: 列出符合条件的进程(4、6、协议、:端口、@ip )
  -p<进程号>: 列出指定进程号所打开的文件
  -u: 列出UID号进程详情
  -h: 显示帮助信息
  -v: 显示版本信息。
  -n: 不反向解析网络名字
  1. 查看当前哪个进程正在使用此文件
lsof /var/log/messages

在这里插入图片描述
2. 查看由登陆用户启动而非系统启动的进程
在这里插入图片描述
3.指定进程号,可以查看该进程打开的文件
在这里插入图片描述
4.查看指定程序打开的文件
在这里插入图片描述
范例:利用lsof 恢复正在使用中的被误删除的文件

lsof | grep /var/log/messages
rm -f /var/log/messages
lsof |grep /var/log/messages
cat /proc/1102/fd/7
cat /proc/1102/fd/7 > /var/1og/messages

在这里插入图片描述

Centos 8新特性cockpit

由cockpit包提供,当前Ubuntu和CentOS7也支持此工具。

Cockpit 是CentOS 8取入的新特性,是一个基于Web界面的应用,它提供了对系统的图形化管理,包括以下内容

1.监控系统活动(CPU、内存、磁盘IO和网络流量)
2.查看系统日志条目
3.查看磁盘分区的容量
4.查看网络活动(发送和接收)查看用户帐户
5.检查系统服务的状态提取已安装应用的信息
6.查看和安装可用更新(如果以root身份登录)并在需要时重新启动系统打开并使用终端窗口
yum -y install cockpit
systemctl start cockpit

在这里插入图片描述
打开浏览器,访问以下地址:

https://<cockpit主机ip>:9090

登录名就是登录主机的用户名和密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

信号发送–kill

kill是一个内部命令,可用来向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略),不区分大小写。

显示当前系统可用信号:

kill -l
trap -l

查看帮助:man 7 signal

常用信号

常用信号:
  1) SIGHUP    无须关闭进程而让其重读配置文件
  2) SIGINT    中止正在运行的进程;相当于ctrl+c
  3) SIGQUIT   相当于ctrl+\
  9) SIGKILL   强制杀死正在运行的进程,可能会导致数据丢失,慎用!
  15) SIGTERM  终止正在运行的进程,默认信号
  18) SIGCONT  继续运行
  19) SIGSTOP  后台休眠

在这里插入图片描述
指定信号的方法

指定信号的方法:
   1.信号的数字标识: 1,2,9
   2.信号完整名称: SIGHUP,sighup
   3.信号的简写名称: HUP,hup

范例:

范例:
  kill -1 pid ...
  kill -n 9 pid
  kill -s SIGINT  pid
[root@centos8 ~]#kill -int `pidof ping`
[root@centos8 ~]#kill -sigint `pidof ping`

按名称: killall来自于psmisc包

killall [-SIGNAL]  comm...

按模式:

pkill [options]  pattern
常用选项
  -SIGNAL
  -u uid: effective user,生效者
  -u uid: real user,真正发起运行命令者
  -t terminal:与指定终端相关的进程
  -l: 显示进程名(pgrep可用)
  -a: 显示完整格式的进程名(pgrep可用)
  -P pid:显示指定进程的子进程

kill -1 重新加载配置文件

重新加载配置文件,无须重启服务。

kill -1 pid

查看HUP信号

许多服务都支持的reload操作,实际上就是发送了HUP信号
  例如:service httpd reload 即相当于killall -1 httpd

signal is 0

如果信号为0,则不发送实际信号,但仍会执行错误检查。

# man kill
If signal is 0, then no actual signal is sent, but error checking is still performed.

在这里插入图片描述
以上截图内容我们就可以来实现故障自愈,到发送0信号报错后,就直接重启服务,可以将以下这条命令写在脚本中

killall -0 master &> /dev/null || systemctl restart postfix

前后台执行作业

Linux的作业控制
  1.前台作业: 通过终端启动,且启动后一直占据终端
  2.后台作业: 可通过终端启动,但启动后即转入后台运行(释放终端)

在这里插入图片描述

让作业运行于后台

让作业运行于后台
  1.运行中的作业: Ctrl+z
  2.尚未启动的作业: COMMAND &

后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭后台作业。如果希望送往后台后,剥离与终端的关系(关闭终端窗口后,作业仍然执行),可以执行以下命令:

后台后执行作业,剥离与终端的关系
  1. nohup COMMAND &>/dev/null &
  2. screen; COMMAND
  3. tmux; COMMAND

&

#终端1运行后台进程
ping 127.0.0.1 &

在这里插入图片描述

#终端2可以查看到进程
ps aux|grep ping

#关闭终端1后,在终端2就查看不到ping进程了

在这里插入图片描述

nohup

[root@rocky ~]# rpm -qf `which nohup`
coreutils-8.30-12.el8.x86_64

在这里插入图片描述

默认情况下,nohup会将输出重定向到名为nohup.out的文件中。如果需要自定义输出文件,可以使用重定向操作符:

nohup java -jar WebMgr.jar > output.log 2>&1 &

在这里插入图片描述
关闭一个终端窗口之后,ping进程仍然存在
在这里插入图片描述

并行运行

利用后台执行,实现并行功能,即同时运行多个进程,提高效率。

方法1
cat all.sh
f1.sh&
f2.sh&
f3.sh&

方法2
(f1.sh&);(f2.sh&);(f3.sh&)

方法3
f1.sh&f2.sh&f3.sh&

多组命令并行执行

[root@centos8 ~]#{ ping -c3 127.1; ping 127.2; }& { ping -c3 127.3 ;ping 127.4;}&

并行扫描在线主机

scan_host.sh

#!/bin/bash
NET=192.168.10
for i in {1..254};do
    {
    if ping -c1 -w1 $NET.$i &> /dev/null;then
       echo $NET.$i is up
    else
       echo $NET.$i is down
    fi
    }&
done
wait

循环瞬间并发执行完毕。由尾号可以看出,数字不是连续的。

[root@rocky data]# bash scan_host.sh 
192.168.10.1 is up
192.168.10.2 is up
192.168.10.157 is up
192.168.10.156 is up
192.168.10.155 is down
192.168.10.154 is down
192.168.10.5 is down
192.168.10.9 is down
192.168.10.6 is down
192.168.10.13 is down
192.168.10.7 is down
192.168.10.26 is down
192.168.10.25 is down
......
192.168.10.16 is down
192.168.10.29 is down
192.168.10.21 is down
192.168.10.3 is down
192.168.10.18 is down
192.168.10.14 is down
192.168.10.4 is down
192.168.10.35 is down
......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言-从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存,输人的字符串以“!”结束

题目要求&#xff1a; 从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存,输人的字符串以"!”结束 1.实现程序&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {FILE* fp fopen("…

新160个crackme - 038-Eternal Bliss.3

运行分析 需要输入注册码 PE分析 VB程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 使用VB Decompiler静态分析&#xff0c;找到关键函数入口点402AC4 ida跳转至402AC4&#xff0c;按F5反汇编&#xff0c;发现有407行代码&#xff0c;配合VB Decompiler得到的代码…

力扣面试经典算法150题:跳跃游戏 II

跳跃游戏 II 今天的题目是力扣面试经典150题中的数组的中等难度题&#xff1a;跳跃游戏II。 题目链接&#xff1a;https://leetcode.cn/problems/jump-game-ii/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 给定一个非负整数数组 nums&#xff0…

springboot框架中filter过滤器的urlPatterns的匹配源码

如下图所示&#xff0c;我使用WebFilter注解的方式定义了一个过滤器&#xff0c;同时定义了过滤器的过滤条件 urlPatterns为/*,可能很多人都知道filter的/*代表所有URL都匹配&#xff0c;但是源码在哪里呢 先打断点看一下调用链 然后跟着调用链慢慢点&#xff0c;看看哪里开始…

redis面试(二十)读写锁WriteLock

写锁WriteLock 和读锁一样&#xff0c;在这个地方执行自己的lua脚本&#xff0c;我们去看一下 和read没有多大的区别 KEYS[1] anyLock ARGV[1] 30000 ARGV[2] UUID_01:threadId_01:write hget anyLock mode&#xff0c;此时肯定是没有的&#xff0c;因为根本没这个锁 …

LangGPT结构化提示词编写实践 #书生大模型实战营#

1.闯关任务&#xff1a; 背景问题&#xff1a;近期相关研究发现&#xff0c;LLM在对比浮点数字时表现不佳&#xff0c;经验证&#xff0c;internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题&#xff0c;例如认为13.8<13.11。 任务要求&#xff1a;利用LangGPT优化提示…

电脑如何恢复删除的照片?4种实用恢复办法

在日常生活中&#xff0c;我们经常会因为各种原因误删电脑中的照片&#xff0c;而这些照片往往承载着珍贵的回忆。那么&#xff0c;如果不小心删除了照片&#xff0c;我们该如何恢复呢&#xff1f;下面就为大家介绍几种实用的恢复方法。 一、使用回收站恢复 当我们在电脑上删…

【C++】单例模式的解析与应用

C单例模式&#xff1a;深入解析与实战应用 一、单例模式的基本概念二、C中单例模式的实现方式2.1 懒汉式&#xff08;线程不安全&#xff09;2.2 懒汉式&#xff08;线程安全&#xff09;2.3 饿汉式2.4 静态内部类&#xff08;C11及以后&#xff09; 三、单例模式的优缺点四、实…

基于Transformer进行乳腺癌组织病理学图像分类的方法比较

为了提高视觉变压器的精度和泛化能力,近年来出现了基于Poolingbased Vision Transformer (PiT)、卷积视觉变压器(CvT)、CrossFormer、CrossViT、NesT、MaxViT和分离式视觉变压器(SepViT)等新模型。 它们被用于BreakHis和IDC数据集上的图像分类,用于数字乳腺癌组织病理学。在B…

【机器学习】4. 相似性比较(二值化数据)与相关度(correlation)

SMC Simple Matching Coefficient 评估两组二进制数组相似性的参数 SMC (f11 f00) / (f01f10f11f00) 其中&#xff0c;f11表示两组都为1的组合个数&#xff0c;f10表示第一组为1&#xff0c;第二组为0的组合个数。 这样做会有一个缺点&#xff0c;假设是比较稀疏的数据&…

readpaper在读论文时候的默认规定

红色代表主旨思想 蓝色代表专业名词解析

如何为你的SEO策略找到竞争对手的关键词

你有没有想过你的竞争对手是如何总是设法保持领先一步的&#xff1f;或者他们似乎如何扼杀了您所在行业的大部分搜索流量&#xff1f;他们成功的秘诀可能比你想象的要简单——关键词。 在本文中&#xff0c;我们将解释如何使用 SE Ranking、Google Keyword Planner 和 Bing Ke…

Qt坐标系统之三个坐标系和两个变换

前言 Qt坐标系统由QPainter类控制。它和QPaintDevice和QPaintEngine类一起构成Qt绘图系统的基础。QPainter用于执行绘图操作&#xff0c;QPaintDevice是QPainter用来绘制的一个二维空间的抽象&#xff0c;QPaintEngine提供在不同设备绘图的接口。 Qt 的坐标分为逻辑坐标和物理…

深度学习-局部最小值与鞍点【Datawhale X 李宏毅苹果书 AI夏令营】

在网络优化时&#xff0c;有时会出现随时参数不断更新&#xff0c;训练的损失可能不会再下降&#xff0c;但训练结果并不满意。为什么会出现这样的情况呢&#xff1f; 假设排除数据集优劣的问题&#xff0c;可能需要进一步考虑的是为什么网络不再有新的最优值了&#xff0c;在…

【记录】MICCAI BraTs 2020数据集

简介 本文 MICCAI 竞赛中公布的用于脑肿瘤分割 BraTS 2020数据集,根据官方统计,该数据集中共含有660例数据,训练集369、验证集125,测试集166。不过仅有训练集中给出了详细的分割标签,验证集虽然公布了 但是仅为了验证,没有给出具体的Ground Truth。所以如果进行实验主要还…

昇腾 - AscendCL C++应用开发 图像文件的解码时硬件对图像的宽度和高度的处理方式

昇腾 - AscendCL C应用开发 图像文件的解码时硬件对图像的宽度和高度的处理方式 flyfish 假如是这样的 输入图片格式&#xff08;YUV分量比例&#xff09; jpeg(420) 输出图片格式 YUV420SP NV12 8bit 输出图片宽、高对齐要求 宽2对齐 高2对齐 输出图片宽Stride、高St…

CMake构建学习笔记2-zlib库的构建

文章目录 1. 概述2. 详论2.1 设置构建目录2.2 配置构建2.3 构建项目2.4 安装项目2.5 清理构建目录 3. 总结 1. 概述 Zlib是一个数据压缩库&#xff0c;它提供了在内存中对数据进行压缩和解压缩的功能。这个库非常泛用&#xff0c;除了直接使用这个库之外&#xff0c;很多依赖库…

学历不高能进大厂么?

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

《终身学习——10个你必须掌握的未来生存法则》读书笔记

无论你遵守与否&#xff0c;大自然的法则是无法改变的&#xff0c;你若无视“重力法则”&#xff0c;从屋顶跳下&#xff0c;那给你善后的就不是“重力警察”了。同理&#xff0c;如果你不遵循成长法则&#xff0c;也不会有“成长警察”找你麻烦&#xff0c;你只会发现自己的成…

结合 curl 与住宅代理实现高效数据抓取

引言 什么是 curl&#xff1f;有哪些功能&#xff1f; 基本 curl 命令有哪些&#xff1f; 为什么要使用 curl 处理 HTTP 请求&#xff1f; 如何使用 curl 和住宅代理进行网络抓取&#xff1f; 总结 引言 在当今数据驱动的商业环境中&#xff0c;数据的获取和分析能力是企…