进程和计划任务管理

查看系统进程信息

静态查看系统进程信息之ps命令

(每五秒刷新一次数据)

方法一:ps aux //显示所有进程

  • a:显示现行终端下的所有进程,包括其它用户的进程。
  • u:显示进程的归属用户及内存的使用情况。
  • x:显示所有终端的进程。
  • h:不显示标题列。

各列的解释:

  • USER:进程的用户。
  • PID:进程的ID。
  • %CPU:进程占用的CPU百分比,占用越高,进程越耗费资源。
  • %MEM:占用内存的百分比。
  • VSZ:该进程使用的虚拟内存量(KB)。
  • RSS:该进程占用的实际物理内存量(KB)。
  • TTY:启动进程的终端名。不是从终端启动的进程则显示为 ?
  • STAT:该进程的状态(D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)
  • START:该进程被启动时间。
  • TIME:该进程实际使用CPU的时间。
  • COMMAND:进程的名称与参数。

注:查看系统中有多少个进程:ps auxh | wc-l //加上h表示不显示名称

方法二:ps -elf

常用参数及其作用:

  • -e:显示系统内的所有进程信息。
  • -l:使用长格式显示进程信息。
  • -f:使用完整的格式显示进程信息。
  • -a:显示现行终端下的所有进程。
  • -T:查看线程信息。
  • -C <进程名称>:显示指定进程名的信息。
  • -p <进程pid>:显示指定pid的进程的信息。
  • -H:显示树状结构,表示进程间的相互关系。
  • --no-headers:不显示标题列。

进程的几个常用参数:

PID:进程号

PPID:父进程PID

UID: 真实用户ID进程创建者的用户ID号)

GID:真实组ID(进程创建者所属组的ID号)

谦让度(NI)和优先级(PRI):数字越小,优先级越高,优先级高的进程更早被处理。谦让度和优先级是一对相反的概念,高谦让度意味着低优先级,允许用户设置谦让度。

注:查看系统中有多少个进程:[root@localhost ~]# ps -elf --no-headers | wc -l

动态查看进程信息之top命令

load average: 表示系统负载的平均值,显示的三个数值分别表示 1 分钟、5 分钟和15分钟内的平均负载情况。

平均负载:是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,可以简单的理解为平均负载就是系统平均活跃进程数。当系统平均负载的值如果超过系统 CPU 的数量,那么系统有可能会遇到性能瓶颈。

load average 的值在什么情况可认为是异常的? 当平均负载长时间高于CPU数量的70%时

load average 平均负载高时可能是CPU密集型进程多导致,也可能是I/O繁忙导致

查看系统平均负载情况命令:w、uptime、load

load average:0.00, 0.01, 0.05 分别表示 1 分钟、5 分钟和15分钟内的平均负载情况。

进程信息属性介绍(以上图为例)

第一行:任务队列信息

|------------|-------------|-------------|---------------------------------------------------------|
| 01:44:46 | up 4:44 | 1 user | load average: 0.00, 0.01, 0.05 |
| 当前系统时间 | 系统己运行时长 | 当前登录用户数 | 系统平均负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值 |

第二行:进程信息

|--------------|-----------------|-----------------|-----------|--------------|
| 175 total | 1 running | 174 sleeping | 0 stopped | 0 zombie |
| 总进程数为175 | 正在运行的进程数为一个 | 中止的进程数有174个 | | 僵死的进程数为0 |

第三行:cpu信息

|----------|----------|-------------|---------------------------------|-------------|------------|------------|-----------|
| us | sy | ni | id | wa | hi | si | st |
| 用户占用 | 内核占用 | 优先级调度占用 | 空闲CPU,要了解空闲的CPU百分比,主要看%id部分 | I/O等待占用 | 硬件中断占用 | 软件中断占用 | 虚拟化占用 |

第四行:内存信息

|-----------|----------|----------|---------------------|
| total | free | used | buff/cache |
| 总内存空间 | 空闲内存 | 己用内存 | 物理内存和交换内存的缓冲区总和 |

第五行:交换空间的信息

|-----------|------------|------------|---------------|
| total | free | used | avail Mem |
| 总交换空间 | 空闲交换空间 | 己用交换空间 | 可用物理空间 |

查看系统指标总结:

CPU top vmstat sar htop atop

内存 free -m vmstat sar top cat /proc/meninfo

IO iostat(磁盘级别) iotop(进程级别) vmstat(系统级别) atop sar

磁盘容量 df -h du

进程 ps top htop atop pidstat

网卡流量 ifconfig iftop atop cat /proc/net/dev

top常用命令:

  • P 键:根据CPU使用百分比大小进行排序
  • M 键:根据驻留内存大小进行排序
  • N 键:根据启动时间进行排序
  • c 键:切换显示命令名称和完整命令行
  • h 键:可以获得 top程序的在线帮助信息
  • k 键:根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程
  • q 键:退出 top 程序
  • 数字1 键:显示CPU个数和状态

查看进程信息之pgrep命令

(条件查询)

pgrep -l "关键词"

pgrep -U 表示根据用户查询

pgrep -t 表示根据终端查询

[root@localhost ~]# pgrep -l -U huang    //更具用户查找
2104 sshd
2107 bash
2153 su
[root@localhost ~]# who
huang    pts/0        2024-04-18 21:01 (192.168.10.1)
[root@localhost ~]# pgrep -l -t pts/0   //根据终端查找
2107 bash
2153 su
2162 bash
[root@localhost ~]# pgrep -l "vi"      //根据关键词vi查找
758 VGAuthService
1114 libvirtd

查看进程树pstree

以树形结构列出进程信息

  • -a:显示完整信息
  • -u:列出对应用户名
  • -p:列出对应PID号
[root@localhost ~]# pstree -aup huang  //查看指定用户的进程数结构
sshd,2104
  └─bash,2107
      └─su,2153,root root
          └─bash,2162
              └─pstree,6159 -aup huang

进程的启动方式

运行方式

前台运行:在命令行输入命令直接运行

后台运行:在命令末尾添加&

(缺点是在默认情况下会随着终端的关闭而退出,可在命令开头位置添加 nohup(格式为nohup 命令 &),可实现后台运行的进程不会随着终端的关闭而自动退)

后台运行示例:

此时可以看到,"cp /dev/sr0 /tmp &"命令的执行不会影响其他操作的执行

[root@localhost ~]# cd /tmp
[root@localhost tmp]# cp /dev/sr0 /tmp &
[1] 6282
[root@localhost tmp]# 
[root@localhost tmp]# 
[root@localhost tmp]# 
[root@localhost tmp]# ls
hsperfdata_root
sr0

进程前后台调度

ctrl + z #将前台进程挂起暂停并调入到后台

jobs -l #查看挂起调度到后台的进程列表和序号

fg <序号> #将挂起到后台的进程调度到前台继续运行

终止进程的执行

Ctrl+C组合键

中断正在执行的命令

kill、killall命令

okill用于终止指定PID号的进程

okillall用于终止指定名称相关的所有进程

-9选项用于强制终止

pkill命令

根据特定条件终止相应的进程

常用选项

  • -U:根据进程所属的用户名终止相应进程

  • -t:根据进程所在的终端终止相应进程

    [root@localhost ~]# pkill -t 'pts/2' //杀死指定终端设备'pts/2'
    Connection closing...Socket close.

    Connection closed by foreign host.

    Disconnected from remote host(CentOS 7-2) at 22:47:26.

    Type `help' to learn how to use Xshell prompt.

kill命令总结

1、kill是通过向进程发送信号的方式杀掉进程

2、kill 默认选项为 -15 ,发送信号 SIGTERM,表示告诉进程自行停止运行并退出,进程可以忽略

3、kill -9 ,发送信号 SIGKILL,表示进程要立即退出,且不能被捕捉或忽略

4、kill -3 ,发送信号 SIGQUIT,表示进程自行退出,并打印进程各个线程的堆栈信息,保存路径为 /proc/${pid}/cwd,文件名为 antBuilderOutput.log

5、kill -1 ,发送信号 SIGHUP,表示进程重新加载配置文件,不退出

计划任务管理

1、at一次性任务设置

  1. at HH:MM [yyyy-mm-dd]

  2. 输入命令列表

  3. ctrl + d 提交任务

  4. atq 查看没执行的任务列表和序号

  5. atrm <序号> 删除指定的任务

    [root@localhost ~]# date

    Sun May 7 10:33:13 EDT 2017

    [root@localhost ~]# at 10:35 2017-05-07

    at> pgrep -U root |wc -l>/tmp/ps.root

    at> <EOT> #按Ctrl+D键提交任务

    job 1 at Sun May 7 10:35:00 2017

    [root@localhost ~]# cat /tmp/ps.root

    202

2、crontab周期性任务设置

启动周期性任务必须确认对应的系统服务crond已经运行

crontab -e [-u 用户] --> 自动对应文件 /var/spool/cron/用户名
按照预先设置的时间周期(分钟、小时、天、月、周)重复执行用户指定的命令操作

属于周期性计划任务

主要设置文件

全局配置文件,位于文件:/etc/crontab

系统默认的设置,位于目录:/etc/cron.*/

用户定义的设置,位于文件:/var/spool/cron/用户名

符号以及其含义:

案例:写出设置周期性计划任务的命令,要求工作日期间早十点和晚十点的二十二分执行一次强制复制/var/log/目录到/opt/。

crontab -e
22 10,22 * * 1-5  \cp -f -r /var/log/ /opt/  #cp是'cp -i'的别名
相关推荐
这可就有点麻烦了8 分钟前
强化学习笔记之【TD3算法】
linux·笔记·算法·机器学习
DY009J8 分钟前
深度探索Kali Linux的精髓与实践应用
linux·运维·服务器
程序员-珍20 分钟前
虚拟机ip突然看不了了
linux·网络·网络协议·tcp/ip·centos
什么鬼昵称1 小时前
Pikachu- Over Permission-垂直越权
运维·服务器
码农小白1 小时前
linux驱动:(22)中断节点和中断函数
linux·运维·服务器
4647的码农历程1 小时前
Linux网络编程 -- 网络基础
linux·运维·网络
醉颜凉2 小时前
银河麒麟桌面操作系统V10 SP1:取消安装应用的安全授权认证
运维·安全·操作系统·国产化·麒麟·kylin os·安全授权认证
2401_857610032 小时前
SpringBoot实现:校园资料分享平台开发指南
服务器·spring boot·php
C++忠实粉丝2 小时前
Linux环境基础开发工具使用(2)
linux·运维·服务器
康熙38bdc3 小时前
Linux 环境变量
linux·运维·服务器