Linux进程和任务管理

目录

一.程序和进程的关系

程序

进程

线程

线程与进程的区别

二.查看进程信息ps

方法一

常用选项

方法二

三.TOP动态查看进程信息

进程信息区各列解释

top常用命令

系统查看命令总结

查看进程信息pgrep

查看进程树pstree

四.控制进程

进程的启动方式

进程的前后台调度

终止进程的运行

终止进程的运行pkill

查看终端信息的命令(who、w、ps aux)

五.计划任务管理

一次性计划任务

周期性计划任务

crontab命令

实列


一.程序和进程的关系

程序

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

进程

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

线程

  • 指在一个进程中执行的一个单一线性流程
  • 一个进程可以包含多个线程,这些线程可以并发执行,同时共享进程的资源,每个线程都有自己的程序计数器、堆栈和局部变量,但它们共享全局变量和静态变量
  • 是操作系统(或者在用户空间的线程库)所管理的最小执行单元,它能独立运行、调度和管理资源
  • 在多线程系统中,多个线程可以同时运行,从而实现并发执行,提高系统的效率和利用率。同时,由于线程可以共享相同的内存空间
  • 线程间的通信和同步较为方便。
     

线程与进程的区别

  • 进程是程序的一次执行,"它是资源分配和管。理的基本单位,包括代码、数据、堆栈、文件句柄等。
  • 线程是进程中的一个执行流程,是CPU调度的基本单位,共享进程的资源,包括内存、文件和其他系统资源。
  • 进程之间通常是相互独立的,每个进程有独立的内存空间,通过进程间通信(IPC)来实现数据共享和通信。
  • 线程之间共享相同的地址空间和其他进程资源,线程之间的数据共享和通信更为方便

二.查看进程信息ps

方法一

ps aux

常用选项
  • a:显示现行终端下的所有进程,包括其它用户的进程。
  • u:显示进程的归属用户及内存的使用情况。
  • x:显示所有终端的进程。
  • h:不显示标题列。
  • [root@localhost ~]# ps aux  
    USER        PID    %CPU      %MEM        VSZ         RSS                                 
    进程用户   进程的id  CPU百分比 内存的百分比 虚拟内存量  实际物理内存量
               TTY            STAT          START      TIME                COMMAND
         启动进程的终端名    该进程的状态    启动时间    实际使用CPU的时间     进程的名称与参数。
    
    
    root         2      0.0       0.0          0            0  
                 ?             S             09:41     0:00                [kthreadd]
    

各列的解释:
 

USER进程的用户
PID进程的ID
%CPU进程占用的CPU百分比,占用越高,进程越耗费资源
%MEM占用内存的百分比
VSZ该进程使用的虚拟内存量(KB)
RSS该进程占用的实际物理内存量(KB)
TTY启动进程的终端名。不是从终端启动的进程则显示为 ?
STAT

该进程的状态

D:不可中断的休眠状态;

R:正在运行状态;

S:处于休眠状态,可被唤醒;

T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;Z:僵尸进程,进程已经中止,但是部分程序还在内存当中

START该进程被启动时间
TIME该进程实际使用CPU的时间
COMMAND进程的名称与参数

方法二

ps -elf

常用选项

  • -e:显示系统内的所有进程信息。
  • -l:使用长格式显示进程信息。
  • -f:使用完整的格式显示进程信息。
  • -a:显示现行终端下的所有进程。
  • -T:查看线程信息。
  • -C <进程名称>:显示指定进程名的信息。
  • -p <进程pid>:显示指定pid的进程的信息。
  • -H:显示树状结构,表示进程间的相互关系。
  • --no-headers:不显示标题列
  • [root@localhost ~]# ps -elf 
       F                               S           UID                   PID   
    内核分配给进程的系统标记      进程的状态    启动这些进程的用户 进程的进程ID
    PPID                       C                PRI               NI                        
    父进程的进程号  进程生命周期中的CPU利用率   进程的优先级     谦让度值用来参与决定优先级
    ADDR                SZ                                      WCHAN                      
     进程的内存地址  假如进程被换出,所需交换空间的大致大小       若该进程在睡眠,则显示睡眠中的系统函数名 
      STIME                   TTY                     TIME                    CMD
    进程启动时的系统时间     进程启动时的终端设备  运行进程需 要的累计CPU时间  进程的启动命令
       1                                S           root                  2      
      0                        0                  80                 0 
      -                   0                                         kthrea 
    09:41                       ?                      00:00:00               [kthreadd] 
    

    各列的解释

  • F内核分配给进程的系统标记
    S进程的状态
    UID启动这些进程的用户
    PID进程的进程ID
    PPID父进程的进程号(如果该进程是由另一个进程启动的)
    C进程生命周期中的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动态查看进程信息

  • 查看动态的进程排名信息(每5秒刷新一次页面数据)

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

进程信息区各列解释

top常用命令

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

系统查看命令总结

查看进程信息pgrep

pggrep

查看进程树pstree

pstree

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

四.控制进程

进程的启动方式

进程的前后台调度

Ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行

jobs命令:jobs [-l]查看处于后台的任务列表

fg命令:将后台进程恢复到前台运行,可指定任务序号

终止进程的运行

Ctrl+C组合键     中断正在执行的命令

kill、kilall命令

  • kill用于终止指定PID号的进程
  • killall用于终止指定名称相关的所有进程
  • -9选项用于强制终止
  • (1)SIGHUP:重载配置文件,但是不杀死任务,效果等同于reboot;
  • (3)SIGQUIT:给予提示信息,保存日志文件及程序执行信息;
  • (9) SIGKILL:表示进程被终止,需要立即退出,强制杀死该进程,这个信号不能被捕获也不能被忽略;
  • (15)SIGTERM:告诉进程需要被关闭,请自行停止运行并退出;
  • 补充: 我们经常会用到kill命令去杀死一个进程,但是有时会出现kill不成功的现象,这时就要用到kill -9。
  • 之所以这两个命令会有区别是因为所发送的信号(signal)是不同的。默认情况下kill命令的参数为-15。
  • kill -15代表的信号为SIGTERM,这是告诉进程你需要被关闭,请自行停止运行并退出;
  • 而kill -9代表的信号是SIGKILL,表示进程被终止,需要立即退出;
  • 因此kill -9表示强制杀死该进程,这个信号不能被捕获也不能被忽略。

终止进程的运行pkill

pkill命令:根据特定条件终止相应的进程;

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

查看终端信息的命令(who、w、ps aux)

五.计划任务管理

一次性计划任务

  • ● 使用at命令设置的任务只在指定时间点执行一次,若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时间
  • ● 可以在at交互环境中输入多条命令,最后按Ctrl+D组合键提交

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

周期性计划任务

crontab命令

  • 按照预先设置的时间(分钟、小时、天、月、周)周期复执行用户指定的命令操作
  • 属于周期性计划任务
  • 主要设置文件
  • 全局配置文件,位于文件:/etc/crontab
  • 系统默认的设置,位于目录:/etc/cron.*/
  • 用户定义的设置,位于文件:/var/spool/cron/用户名

  •  

实列

[root@localhost tmp]# crontab -l
no crontab for root
[root@localhost tmp]# systemctl status crond.service
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2024-04-18 16:40:11 CST; 29min ago
 Main PID: 1261 (crond)
    Tasks: 1
   CGroup: /system.slice/crond.service
           └─1261 /usr/sbin/crond -n

4月 18 16:40:11 localhost.localdomain systemd[1]: Started Command Scheduler.
4月 18 16:40:11 localhost.localdomain crond[1261]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 56% if used.)
4月 18 16:40:12 localhost.localdomain crond[1261]: (CRON) INFO (running with inotify support)
[root@localhost tmp]# crontab -e 
no crontab for root - using an empty one
crontab: installing new crontab
[root@localhost tmp]# crontab -l
30  9-17  1-15  2,12   *     /usr/bin/ls
[root@localhost tmp]# cd /var/spool/cron 
[root@localhost cron]# cat root
30  9-17  1-15  2,12   *     /usr/bin/ls
[root@localhost cron]# echo '30 7 * * 6 /usr/bin/systemctl httpd restart' >> /var/spool/cron/root
[root@localhost cron]# crontab -l
30  9-17  1-15  2,12   *     /usr/bin/ls
30 7 * * 6 /usr/bin/systemctl httpd restart
[root@localhost cron]# crontab -e #打开crontab
crontab: installing new crontab

[root@clr /var/spool/cron]# vim /etc/crontab  #修改全局配置文件也可以编辑crontab计划

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
*/5 * * * * root#(此处需要添加指定用户名) /usr/bin/ls                                                   

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[C语言实现]码林盟主秘籍——《手撕八大排序》

​ ​ &#x1f970;作者: FlashRider &#x1f30f;专栏: 初阶数据结构 &#x1f356;知识概要&#xff1a;详解八大排序的原理、时间复杂度分析、以及代码实现。 目录 八大排序 插入排序 直接插入排序 希尔插入排序 选择排序 冒泡排序 计数排序 堆排序 快速排序 霍…

Gather:基于 DePIN 体系构建的 Web3 社交生态

“Gather 通过搭建一套基于 DePIN 的 Web3 社交体系&#xff0c;正在成为 SocialFi 革命的早期推动者。” 基于互联网的社交&#xff0c;正在为人们提供了远距离沟通和连接的便利&#xff0c;打破了地理障碍&#xff0c;这种具备包容性、广泛性的线上连接&#xff0c;加速了信息…

Git禁止松散对象loose objects弹窗

打开仓库时&#xff0c;弹窗如图 This repository currently has approximately XXXX loose objects.解决办法&#xff1a;见How to skip “Loose Object” popup when running ‘git gui’ Git v1.7.9 或以上版本&#xff0c;执行git config --global gui.gcwarning false

什么是XXE攻击?如何进行防护

安全性很难做到正确&#xff0c;即使在当今具有安全意识的世界中&#xff0c;也存在一些严重的漏洞&#xff0c;例如 XML 外部实体 (XXE)&#xff0c;它们被忽视并最终成为破坏的原因。 XML 外部实体 (XXE) 攻击是一种计算机安全漏洞&#xff0c;通常存在于 Web 应用程序中&…

Uds诊断协议的请求和响应的寻址

一根总线上挂载着很多ECU&#xff0c;那么基于CAN协议UDS的诊断请求报文&#xff0c;诊断仪是如何发给ECU的&#xff1f;如何精准的找到想要诊断的那个ECU&#xff1f;ECU又是如何将诊断响应的报文返回给诊断仪&#xff1f; 在UDS协议中&#xff0c;规定了诊断请求和响应报文发…

kerberos:适配华为FI

文章目录 一、hive1、hive thrift连接方式 一、hive 1、hive thrift连接方式 kerberos认证失败信息 缺少配置&#xff1a;{“hadoop.rpc.protection”:“privacy”}&#xff0c;具体可参考&#xff1a;kerbros认证相关问题 华为FI参考资料&#xff1a; https://github.com…

Hive 解决数据倾斜方法

数据倾斜问题&#xff0c; 通常是指参与计算的数据分布不均&#xff0c; 即某个 key 或者某些 key 的数据量远超其他 key&#xff0c; 导致在 shuffle 阶段&#xff0c; 大量相同 key 的数据被发往同一个 Reduce&#xff0c; 进而导致该 Reduce 所需的时间远超其他 Reduce&…

easyui datagrid单元格点击进入编辑时,行会自动向上错位

现象描述&#xff0c;点击第20行可编辑的单元格进入编辑状态时&#xff0c;滚动条自动滚动到第19行了。导致第20行被分页遮挡&#xff0c;看不到无法编辑。 排查了一天百度AI说是滚动定位问题&#xff0c;最后发现是自己设置的列有问题&#xff0c;表格总共五列&#xff0c;全…

mysql面试题八(SQL语句)

目录 1.SQL 基本组成部分 常用操作示例 创建表 插入数据 查询数据 更新数据 删除数据 创建索引 授予用户权限 2.常见的聚合查询 1. 计数&#xff08;COUNT&#xff09; 2. 求和&#xff08;SUM&#xff09; 3. 平均值&#xff08;AVG&#xff09; 4. 最大值&…

4套java智慧型管理系统源码-智慧校园-智慧工地-智慧城管-智慧3D导诊

第一套&#xff1a;Java智慧校园系统源码 智慧学校源码 微信小程序电子班牌 智慧校园系统简介&#xff1a; 智慧校园的建设逐渐被师生、家长认可接受&#xff0c;智慧校园通过对在校师生、教务等所有人员的信息以及各种信息搜集与储存&#xff0c;进行数据优化与管理&#xf…

Formik:让用户体验更加出色的表单解决方案

hi, 大家好&#xff0c;我是徐小夕&#xff0c; 今天又到了我们的博学时间。今天和大家分享一款非常有价值的开源项目——Formik。 这款开源项目也是我研究零代码搭建平台——H5-Dooring 时参考的项目之一&#xff0c;它可以提高表单渲染引擎的性能和效率&#xff0c;构建出性能…

弱口令之暴力破解

目录 前言 弱口令与暴力破解介绍 漏洞挖掘实战专栏 个人介绍 第一关:基于表单的暴力破解 绕过步骤 1.第一步抓包观察 2.使用burp的攻击模块 3.选择攻击模式以及爆破字典 ​编辑 4.进行爆破 第二关 验证码绕过(on server) 绕过步骤 1.观察输入错误观察返回结果 2…

MATLAB中左边的大括号最后一行为什么会留很大的空白——解决

看了一些帖子说改字体&#xff0c;但是并没有什么用&#xff0c;在此给出亲测有效的方法&#xff1a;改变矩阵的行间距 先说一下问题 上图中留有大块空白 **解决办法&#xff1a;**光标放在矩阵上 格式——矩阵——更改矩阵&#xff0c;在矩阵设置中选中“行高相等”&#xff…

网络IO模型 select poll epoll的区别

epoll与select、poll的对比 1. 用户态将文件描述符传入内核的方式 select&#xff1a;创建3个文件描述符集并拷贝到内核中&#xff0c;分别监听读、写、异常动作。这里受到单个进程可以打开的fd数量限制&#xff0c;默认是1024。 poll&#xff1a;将传入的struct pollfd结构…

基于Springboot的社区防疫物资申报系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的社区防疫物资申报系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

插入排序的可视化实现(Python)

插入排序的Python代码 import tkinter as tk import random import timeclass InsertionSortVisualizer:def __init__(self, root, canvas_width800, canvas_height400, num_bars10):self.root rootself.canvas_width canvas_widthself.canvas_height canvas_heightself.nu…

MySQL学习笔记1(MySQL基础)

1.MySQL基础 1.数据库相关概念 ​ *数据库&#xff1a;存储数据的仓库&#xff0c;数据是有组织的进行存储 DtaBase(DB) ​ *数据管理系统&#xff1a;操纵和管理数据库的大型软件 DataBase Management System (DBMS) ​ *SQL&#xff1a;操作关系型数据库的编程语言&#…

抖音ip地址怎么换位置

抖音&#xff0c;作为一款短视频分享平台&#xff0c;已经成为了许多人展示生活、分享才艺的重要舞台。然而&#xff0c;在抖音的使用过程中&#xff0c;你是否想过更换自己的IP地址位置呢&#xff1f;更换IP地址不仅可以帮助你访问一些地域限制的内容&#xff0c;还可以为你的…

3D开发工具HOOPS助力CAM软件优化制造流程

在现代制造业中&#xff0c;计算机辅助制造&#xff08;CAM&#xff09;软件的发展已成为提高生产效率和产品质量的关键。为了满足不断增长的需求和日益复杂的制造流程&#xff0c;CAM软件需要具备高效的CAD数据导入、云端协作、移动应用支持以及丰富的文档生成能力。 Tech So…

node.js-模块化

定义&#xff1a;CommonJS模块是为Node.js打包Javascript代码的原始方式。Node.js还支持浏览器和其他Javascript运行时使用的ECMAScript模块标准。 在Node.js中&#xff0c;每个文件都被视为一个单独的模块。 概念&#xff1a;项目是由很多个模块文件组成的 好处&#xff1a…