进程和计划任务管理

目录

一、程序和进程的关系

程序

进程

线程

进程和线程的关系

二、查看进程信息ps

ps 命令——查看静态的进程统计信息

方法一:ps aux

方法二:ps -elf

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

 系统查看命令总结

查看进程信息pgrep

查看进程树 以树的结构列出进程信息pstree

三、控制进程

四、查看进程信息pstree

五、进程的启动方式

六、计划任务管理

crontab命令​编辑​编辑​编辑


本章结构:

查看进程
控制进程
at一次性任务设置
crontab周期性任务设置

一、程序和进程的关系

程序

  • 保存在硬盘、光盘等介质中的可执行代码和数据
  • 文件中静态保存的代码

进程

  • 在CPU及内存中运行的程序代码
  • 动态执行的代码
  • 父、子进程
      - 每个程序可以创建一个或多个进程

线程

线程是操作系统能够进行运算调度的最小单位。

它被包含在进程之中,是进程中的实际运作单位。

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

总结:线程是进程的一条流水线, 只用来执行程序,而不涉及到申请资源, 是程序实际执行的最小执行单元。

进程和线程的关系

举例说明:我们打开一个聊天软件,这就是开启了一个进程;当我们在软件里面打开一些功能,比如空间, 扫一扫, 设置…,这些操作就是线程.

所以可以说 “进程” 包含 “线程”, “线程” 是 “进程” 的子集.

二、查看进程信息ps

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

进程的名称与参数。

僵尸进程:
一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源。
但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。

方法二:
ps -elf

命令选项:

-e

显示系统内的所有进程信息。

-l

使用长格式显示进程信息。

-f

使用完整的格式显示进程信息。

-a

显示现行终端下的所有进程。

-T

查看线程信息。

-C <进程名称>

显示指定进程名的信息。

-p <进程pid>

显示指定pid的进程的信息。

-H

显示树状结构,表示进程间的相互关系。

--no-headers

不显示标题列。

各列的解释:

F   

内核分配给进程的系统标记。

   

进程的状态。

UID   

启动这些进程的用户。

PID    

进程的进程ID。

PPID   

父进程的进程号(如果该进程是由另一个进程启动的)。

进程生命周期中的CPU利用率。

PRI   

进程的优先级(越大的数字代表越低的优先级)。

NI 

谦让度值用来参与决定优先级。

ADDR  

进程的内存地址。

SZ    

假如进程被换出,所需交换空间的大致大小。

WCHAN 

若该进程在睡眠,则显示睡眠中的系统函数名。

STIME   

进程启动时的系统时间。

TTY   

进程启动时的终端设备。

TIME  

运行进程需要的累计CPU时间。

CMD   

进程的启动命令。

ps -aT              显示所有线程
ps -T -p <pid>  查看指定进程中已经起的线程
ps -L <pid>      查看指定进程中的线程信息

ps aux --sort -%cpu | head -10   按cpu降序排列,-为降序,+为升序,p与%同义
ps aux --sort +pmem | head -n 10  按内存升序排列
ps aux --sort -pcpu,+pmem | head -n 10

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


第一行是 任务队列信息

11:26:03

up 1:46

5 users

load average: 0.00,0.01,0.05

系统时间

系统已运行时长

当前登录用户数

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

第二行为 进程信息

Tasks

running

sleeping

stopped

         zombie

总进程数

正在运行的进程数

休眠的进程数

    中止的进程数

僵死的进程数

第三行为 CPU的信息

us

sy

ni

id

wa

hi

si

st

用户占用

内核占用

优先级调度占用

空闲CPU,要了解空闲的 CPU 百分比,主要看%id 部分

I/O 等待占用

硬件中断占用

软件中断占用

虚拟化占用

第四行为内存的信息

total

free

used

buff/cache

总内存空间

空闲内存

已用内存

物理内存和交换内存的缓冲区总和

第五行为交换空间的信息

total

free

used

avail Mem

总交换空间

空闲交换空间

已用交换空间

可用物理空间

按键盘数字1可以查看系统内每个cpu的使用情况,再次按1将返回显示系统内cpu的平均使用情况。

进程信息区各列解释:

PID

进程id

USER

进程所有者的用户名

PR

优先级

NI

谦让度值。负值表示高优先级,正值表示低优先级

VIRT

进程使用的虚拟内存总量,单位kb

RES

进程使用的物理内存大小,单位kb

SHR

共享内存大小,单位kb

S

进程状态

%CPU

上次更新到现在的CPU时间占用百分比

%MEM

进程使用的物理内存百分比

TIME+

进程使用的CPU时间总计,单位1/100秒

COMMAND

命令名/命令行

top常用命令:
在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

按键

功能解释

P建

根据CPU使用百分比大小进行排字

M键

根据驻留内存大小进行排字

N键

根据启动时间进行排序

c键

切换显示命令名称和完整命令行

h键

可以获得top程序的在线帮助信息

数字1键

显示CPU个数(是123中的1,而不是l)

k键

根据提示输入指定进程的PID号并按Enter键终止对应的进程

q键

退出top程序

top -H                   :显示所有线程
top -H -p <pid>    :显示特定进程中的线程

能够查看load average平均负载情况的命令(top、w、uptime);

 系统查看命令总结

查看内容

查看命令

内存

free -m、vmstat、atop

CPU

top、vmstat、atop、sar

I/O

iostat、iotop、vmstat、atop、sar、pidstat

网卡流量

ifconfig、iftop、atop

磁盘使用

df、du、atop

进程

ps、top、htop、atop、pidstat

查看进程信息pgrep

pgrep -l <关键词> -U <用户名> -t <终端>

查看进程树 以树的结构列出进程信息pstree

pstree -aup

三、控制进程

pgrep命令

  • 根据特定条件查询进程PID信息

常用参数:

  • -l:选项可同时输出对应的进程名以及PID
  • -u:选项查询特定用户的进程
  • -t:选项查询在特定终端运行的进程

四、查看进程信息pstree

pstree命令

  • 以树形结构列出进程信息

常用参数:

  • -a:显示完整信息
  • -u:列出对应用户名
  • -p:列出对应的PID号

五、进程的启动方式

手工启动

  • 前台启动:用户输入命令,直接执行程序
  • 后台启动:在命令行尾加入"&"符号Ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行;
    jobs命令:jobs [-l]查看处于后台的任务列表;
    jobs命令:jobs [-l]查看处于后台的任务列表;
    Ctrl + C组合键:中断正在执行的命令;
    pkill -9 -U [用户名]:杀死指定用户的所有进程;

六、计划任务管理

一次性计划任务

● 使用at命令设置的任务只在指定时间点执行一次,若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时间;

  • 使用at命令,设置一次性计划任务
  • 使用crontab命令,设置周期性计划任务

at [HH:MM] [yyyy-mm–dd]:在特定时间##年##月##日##时##分,设置一次性计划任务;

crontab命令

cromtab任务配置

代表意义数字范围
分钟0~59
小时0~23
日期1~31
月份1~12
0~7
命令需要执行的命令
注意#周的数字为0或7时,都代表”星期天“的意思

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上位机工作感想-从C#到Qt的转变-1

0.前言 接触Qt开发也有一年多的时间了&#xff0c;还记得去年初从杭州回合肥时&#xff0c;刚来公司面临的几个问题&#xff1a; 1.C#转上位机的迷茫2.新公司管理模式的差异3.试用期的各种紧急任务。 当时也是加班加点学习C和Qt的基础知识&#xff0c;做了两个考核项目后&am…

【大模型应用极简开发入门(2)】GPT模型简史:从GPT-1到GPT-4:从小数据量的微调到大数据量的强化学习不断优化模型

文章目录 一. GPT-1&#xff1a;无监督与微调1. 在GPT-1之前的监督学习的问题2. GPT-1中新的学习过程-无监督的预训练3. 复杂任务下的微调4. GPT-1为更强大的模型铺平了道路 二. GPT-2&#xff1a;context learning1. 核心思想&#xff1a;context learning2. GPT-2的数据集 三…

maven报orace,jdbc错误,并出现大量红色波浪线Unresolved dependency

由于oracle的限制&#xff0c;一般我们是无法通过maven直接下载oracle的驱动包的&#xff0c;这就可能导致其余的包出现红色波浪线&#xff0c;解决方法如下 1.新建一个文件夹&#xff0c;并将oracle驱动包放在这个新建的文件夹下&#xff0c;注意不要讲这个oracle包放在maven本…

浏览器数据找回

网站上分享的文章应该都是个人的心血&#xff0c;对于一些操作问题导致心血丢失真的很奔溃&#xff0c;终于找到一个弥补的办法&#xff0c;csdn的文章谷歌浏览器亲测有效&#xff0c;理论上其他浏览器的其他网站应该也可以&#xff0c;适用以下场景 把博客编辑当成了编写新博…

Vue3+TS版本Uniapp:项目前置操作

作者&#xff1a;前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 环境&#xff1a;使用vscode进行开发 如果一开始是使用的HbuilderX&#xff0c;请看hbuilderX创建的uniapp项目转移到vscode 为什么选择vscode&#xff1f;有更好…

温湿度LCD显示并上传服务器

项目需求 通过温湿度传感器将值传到LCD1602&#xff0c;并实时通过蓝牙透传到手机。 硬件介绍 温湿度传感器 DHT11温湿度传感器 DHT11_温湿度传感器数据格式-CSDN博客 LCD1602LCD1602-CSDN博客 HC-01 继电器模块 硬件接线 LCD1602 D0~D7 --> A0~A7VDD, A --> 5v…

(避雷指引:管理页面超时问题)windows下载安装RabbitMQ

一、背景&#xff1a; 学习RabbitMQ过程中&#xff0c;由于个人电脑性能问题&#xff0c;直接装在windows去使用RabbitMQ&#xff0c;根据各大网友教程&#xff0c;去下载安装完之后&#xff0c;使用web端进行简单的入门操作时&#xff0c;总是一直提示超时&#xff0c;要么容…

大sql mysql执行

先把sql 拆分 太大的执行失败 使用 SQLDumpSplitter3 拆分sql 执行拆分的sql 拆分的sql 打开发现很多 ; 开头的空行 替换掉 正则 ^; 修改数据库 my.cnf my,ini 执行可能会提示 [ERR] 2006 - Server has gone away 错误 在 [mysqld] 添加以下几行 wait_timeout2880000 inter…

WordPress SQLite Docker 镜像封装细节

为了让大家用的放心&#xff0c;同时解答 GitHub 社区中的疑问。这篇文章聊聊上一篇文章的 Docker 容器封装细节。 写在前面 在前一篇文章《WordPress 告别 MySQL&#xff1a;Docker SQLite WordPress》中&#xff0c;如果你跟着文章实践&#xff0c;大概三分钟就能够启动一个…

python 文件 成绩分析2

‘’’ 文件score.txt中存储了学生的考试信息,内容如下 小明,98,96 小刚,90,94 小红,90,94 小王,98,96 小刘,80,90 小赵,90,96 第二列是数学成绩&#xff0c;第三列是语文成绩 请写程序分析&#xff1a; 哪些同学语文成绩是相同的?哪些同学数学成绩是相同的?哪些同学语文和数…

HarmonyOS开发环境搭建 移动开发 鸿蒙开发 ArkTS

&#x1f4dc;目录 &#x1f4a1; 环境搭建 &#x1f680;安装nodejs &#x1f935;安装ohpm &#x1f354;安装SDK &#x1f4a5;Emulator安装 &#x1f336;️新建ArkTs项目 &#x1f3c6;️ArkTS语言 ✨️基本语法 &#x1f388; 声明式UI描述 &#x1f371;组件 …

如何在 PyCharm 中集成 GitLab?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…