进程和计划任务管理

简介: 进程和计划任务管理

进程和计划任务管理

一、进程

1.1 程序,进程与线程

程序:是一串保存在硬盘等介质中的可执行的,没有运行的代码。

进程:正在运行中的程序

线程:程序的副本,相当于把进程复制了一份,不过之复制了进程的一部分代码,能够执行任务即可。最小化的复制了进程的代码,仅满足基本需求。真正执行的是线程。

1.2 开启,结束进程的过程

开启进程:systemd(父进程)先启动——>子进程 (父进程给子进程分配资源)

结束进程:子进程先结束——>父进程要先回收分配给子进程的资源,然后再结束父进程

僵尸进程(特殊情况):父进程先结束,子进程还在,无法回收资源

僵尸进程只能同过重启解决

1.3 查看进程命令

1.3.1 ps -elf

[root@localhost /]# ps -elf   //查看静态的进程统计信息
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD

e:显示系统内的所有进程

l:长格式显示

f:完整格式显示进程信息

每一列的含义

  • F:内核分配给进程的系统标记
  • S:进程的状态 【S:休眠状态的进程;R:正在运行的进程;D:不可中断的休眠状态的进程;Z:僵尸进程;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态】
  • UID:启动这些进程的用户
  • PID:进程的进程ID(唯一)
  • PPID:父进程的进程号
  • C :CPU利用率
  • PRI:进程的优先级(数字越大,优先级越低)
  • NI :谦让度值用来参与决定优先级
  • ADDR:进程的内存地址
  • SZ:假如进程被换出,所需交换空间的大致大小
  • WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
  • STIME:进程启动时,系统所处的时间
  • TTY:进程启动时的终端设备
  • TIME:运行进程需要的累计CPU时间
  • CMD:进程的启动命令

1.3.2 ps -aux

[root@localhost /]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[root@localhost /]# ps -aux | grep 进程名    //指定查看

a:显示当前终端上的所有进程,包括其他用户

u:列出进程用户

x:显示所有终端的进程信息

每一列的含义

  • USER:进程的用户
  • PID:进程的ID
  • %CPU:进程占用的CPU百分比
  • %MEM:进程占用物理内存的百分比
  • VSZ:该进程使用的虚拟内存量(KB)
  • RSS:该进程占用的物理内存量(KB)
  • TTY:启动进程的终端名。不是从终端启动的进程则显示为 ?
  • STAT:该进程的状态【S:休眠状态的进程;R:正在运行的进程;D:不可中断的休眠状态的进程;Z:僵尸进程;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;<:高优先级;N:低优先级;L:有些页被锁进内存;s:包含子进程;+:位于前台的进程组;l:多线程】
  • START:该进程被触发启动的时间
  • TIME:运行进程需要的累计CPU时间
  • COMMAND:进程的启动命令

1.3.3 pstree

[root@localhost /]# pstree  [选项] [ PID | USER ]
              -a列出完整命令信息
              -p:显示进程PID
              -u:显示进程用户
              -V:显示版本信息
pstree -aup 

面试题:查看线程

pstree -p PID号        //只显示线程
pstree -up PID号       //即显示线程,也显示用户

1.3.4 top(动态查看进程信息)

[root@localhost /]# top
top - 19:01:03 up  5:39,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 183 total,   1 running, 182 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.9 us,  2.9 sy,  0.0 ni, 94.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2014504 total,   505784 free,   753580 used,   755140 buff/cache
KiB Swap:  4882428 total,  4882428 free,        0 used.  1024856 avail Mem 
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                

第一行:任务队列信息


19:01:03:系统现在所处的时间(每3s刷新一次)

up 5:39:系统已经运行的时长

2 users:当前登录的用户数

load average: 0.00, 0.01, 0.05:系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值

第二行:进程信息

  • Tasks: 183 total :总进程数
  • 1 running:正在运行的进程数
  • 182 sleeping:休眠的进程数
  • 0 stopped:中止的进程数
  • 0 zombie:僵尸进程数

第三行: CPU的信息

%Cpu(s)

  • 2.9 us:用户占用的CPU百分比
  • 2.9 sy:内核占用的CPU百分比
  • 0.0 ni:优先级调度
  • 94.1 id:空闲CPU百分比
  • 0.0 wa:硬盘读写性能
  • 0.0 hi:1分钟CPU的使用率
  • 0.0 si:5分钟CPU的使用率
  • 0.0 st:15分钟CPU的使用率

第四行:内存信息

KiB Mem

  • 2014504 total:总内存空间
  • 505784 free:空闲内存
  • 753580 used:已用内存
  • 755140 buff/cache:物理内存和交换内存的缓冲区总和

第五行:

KiB Swap

  • 4882428 total:总交换空间
  • 4882428 free:空闲交换空间
  • 0 used:已用交换空间
  • 1024856 avail Mem :可用物理空间

每一列的含义

  • PID:进程ID
  • USER:进程所有者的用户名
  • PR:优先级
  • NI:谦让度值
  • VIRT:进程使用的虚拟内存总量,(KB)
  • RES:进程使用的物理内存大小,(KB)
  • SHR:共享内存大小,(KB)
  • S:进程状态
  • %CPU:进程占用的CPU百分比
  • %MEM:进程占用的物理内存百分比
  • TIME+:进程使用的CPU时间总计,(1/100s)
  • COMMAND:进程启动命令
[root@localhost /]# top -b -n 1

-b:以文本格式形式输出

-n 数字:表示运行n次

c键:根据CPU使用百分比大小进行排序

数字键1:列出服务器上所有的CPU和他们的状态

1.3.5 pgrep

用于查找进程 ID(PID)的命令行工具,它可以根据进程的名字或其他属性来查找对应的PID

pgrep   直接使用只显示PID
    -a:显示进程名和PID
    -l:显示进程名
    -u:指定匹配进程的所有者

例:

pgrep -lu "root"    //列出所有属于root用户的进程的信息

1.3.6 kill(终止进程)

面试题

当执行kill是,实际是向内核传递一个信号,内核收到信号后由内核执行终止进程

1.3.6 kill(终止进程)
面试题
当执行kill是,实际是向内核传递一个信号,内核收到信号后由内核执行终止进程
kill 进

1.4 进程的前后台调度

jobs  列出后台进程的状态信息
  -l:显示所有后台进程的PID
  -p:显示所有后台进程的进程组ID
  -n:仅显示最近的后台进程
  -r:仅显示正在运行的后台进程
  -s:仅显示已停止的后台进程

演示

[root@localhost /]# vim aa
##在vim的视图模式下按下 Ctrl+z ,表示将这个文件放到后台并停止运行
[1]+  已停止               vim aa
[root@localhost /]# jobs -l 
[1]+  7379 停止                  vim aa
[root@localhost /]# pgrep -l "vim"
7379 vim
[root@localhost /]# kill -9 7379
[root@localhost /]# jobs -l
[1]+  7379 已杀死               vim aa
cp -r /mnt /opt &
&:表示在后台运行

二、计划任务管理

crontab(定时任务,周期性任务)

创建定时任务

crontab -e [-u 用户名] 不加-u默认当前用户

image.png

* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点 1,3,5 
- 表示一个连续的时间范围 2-10 * * * *1-3
/ 表示间隔的时间频率  */10 * * * * */10
目录
相关文章
|
9月前
|
调度 Windows Perl
进程和计划任务管理
进程和计划任务管理
58 0
|
分布式计算 Hadoop
hadoop进程启停管理
hadoop进程启停管理
86 0
|
7月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
218 1
|
7月前
|
Ubuntu Unix Linux
如何使用 Supervisor 管理你的进程
**Supervisor** 是一款Python编写的进程管理工具,用于类Unix系统,确保应用服务持续运行。常用命令包括:`reload`(重新加载配置)、`status`(查看进程状态)、`shutdown`(关闭所有进程)、`start`和`stop`(控制单个进程)。在CentOS上安装Supervisor用`yum install -y supervisor`,配置文件通常在`/etc/supervisord.conf`。
98 0
|
9月前
|
存储 Java 调度
Java多线程基础-1:通俗简介操作系统之进程的管理与调度
操作系统是一个复杂的软件,具备许多功能。其中,进程的管理与调度是与我们密切相关的。本文将对操作系统功能中进程管理与调度作出介绍。
85 0
|
9月前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
148 2
|
9月前
|
存储 调度
进程的奥德赛:并发世界中的核心概念与动态管理
进程的奥德赛:并发世界中的核心概念与动态管理
85 2
|
9月前
|
存储 Linux 程序员
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
375 0
|
7月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能

热门文章

最新文章

相关实验场景

更多