Shell命令管理进程

Shell命令管理进程

  • 列出进程
    • ps命令
    • top命令
  • 管理后台进程
    • 启动后台进程
    • 查看后台进程
    • jobs和ps的区别
    • 停止进程

  Linux除了是一种多用户操作系统之外,还是一种多任务系统。多任务意味着可以同时运行多个程序。Linux 提供了相关的工具来列出运行中的进程,监视系统的使用情况以及在必要时停止(或杀死)进程。

  可以通过一个 Shell启动、暂停、停止或者杀死进程。此外,还可以将进程放置到后台以及带到前台。本篇详细介绍ps、top、kill、jobs 以及其他用来列出和管理进程的命令。

列出进程

ps命令

  ps(Process Status)是一个常用的Linux/Unix命令,用于查看当前系统中运行的进程信息。它可以显示进程的状态、资源使用情况以及其他相关信息。ps命令的基本用法如下:

ps [选项]

  以下是一些常用的ps命令选项和示例:

  1. 显示当前用户的所有进程:

ps

在这里插入图片描述

  ps命令的输出中的 PIDTTYTIMECMD 是关于进程的信息的字段,它们分别代表以下内容:

  · PID(Process ID):进程的唯一标识符,用于识别和管理进程。每个进程都有一个唯一的PID,通过PID可以进行进程的操作和跟踪。

  · TTY(Terminal Type):与进程关联的终端设备(如果有的话)。这个字段显示了进程是否与终端关联,以及关联的终端类型。通常,如果进程是在终端上运行的,TTY字段将显示终端设备名称,否则显示?pts/0等。

  · TIME:进程已经占用CPU的累计时间。它通常以小时、分钟和秒的形式显示,用于表示进程在CPU上的运行时间。

  · CMD(Command):启动进程的命令行。这个字段显示了进程的完整命令,包括命令名称和可能的参数。

  2. 显示所有进程的详细信息,包括进程的PID(进程ID)、PPID(父进程ID)、CPU使用情况、内存使用情况等:

ps aux

在这里插入图片描述
  ps aux 命令的输出中的字段分别代表以下内容:

  · USER:启动进程的用户名。这是进程的所有者。

  · %CPU:进程占用的CPU利用率,以百分比表示。

  · %MEM:进程占用的物理内存利用率,以百分比表示。

  · VSZ(Virtual Memory Size):进程的虚拟内存大小,以千字节(KB)为单位。它表示进程当前使用的虚拟内存的总大小。

  · RSS(Resident Set Size):进程的常驻内存大小,以千字节(KB)为单位。它表示进程当前占用的物理内存的大小。

  · STAT:进程的状态。通常以单个字符表示,例如,R表示运行中,S表示休眠,Z表示僵尸进程等。

  · START:进程启动的时间和日期。

  · COMMAND:启动进程的完整命令行。

  3. 显示指定用户的所有进程,例如,显示用户名为user的所有进程:

ps -u user

在这里插入图片描述

  4. 显示指定进程的信息,例如,显示PID为1234的进程:

ps -p 1234

在这里插入图片描述

  5. 以树状结构显示进程,包括父子关系:

ps -ejH

在这里插入图片描述

  · UID(User ID):启动进程的用户ID。这是进程的所有者的数字标识符。

  · PID(Process ID):进程的唯一标识符,用于识别和管理进程。

  · PPID(Parent Process ID):父进程的PID,即启动当前进程的进程的PID。

  · PGID(Process Group ID):进程组的ID,多个进程可以被组织成一个进程组。

  · SID(Session ID):会话的ID,一个会话可以包含多个进程组。

  · C:进程占用CPU的时间片百分比。

  · STIME:进程的启动时间。

top命令

在这里插入图片描述

  top 命令是一个用于实时监视系统性能的强大工具,它会以交互式方式显示系统中运行的进程的信息,包括 CPU 使用率、内存使用、进程列表等。要正确分析 top 命令的输出,可以按照以下步骤进行:

  理解顶部概要信息: top 命令的顶部显示包含系统的概要信息。上图第一行,分别是系统运行时间、用户数量、平均系统负载。

  平均系统负载是一个用于衡量系统负载的指标,它表示在一段时间内系统中正在运行或等待执行的进程数量。通常,平均系统负载以三个值的形式显示,分别对应于不同的时间段:1分钟、5分钟和15分钟。
要理解这些值的含义,可以将其解释如下:
  第一个值(1分钟负载平均):它表示在过去1分钟内平均有多少个进程处于运行状态或等待运行状态。这个值通常对应于系统的瞬时负载情况,如果这个值大于系统的CPU核心数量,表示系统可能正处于过载状态。
  第二个值(5分钟负载平均):它表示在过去5分钟内平均有多少个进程处于运行状态或等待运行状态。这个值通常对应于较长时间内的负载情况,可以用来观察系统的负载趋势。
  第三个值(15分钟负载平均):它表示在过去15分钟内平均有多少个进程处于运行状态或等待运行状态。这个值通常对应于相对较长的时间段内的负载情况,也可以用来观察系统的负载趋势。
  通常情况下,平均系统负载值应该保持在系统的CPU核心数量范围内(例如,如果系统有4个CPU核心,那么负载应该在1到4之间较为正常)。如果平均系统负载持续高于系统的CPU核心数量,可能表示系统正处于过载状态,需要进一步分析和处理,例如优化性能或增加硬件资源。

  第二行是任务运行统计。第三行是CPU使用情况。

  us:用户空间(User Space)CPU 使用率。它表示在用户程序中消耗的CPU时间,例如运行应用程序。
  sy:系统空间(System Space)CPU 使用率。它表示在内核中执行系统调用或内核任务时消耗的CPU时间,例如处理硬件中断或文件系统操作。
  ni:Nice值(Nice)。Nice值是进程的调度优先级,如果有运行在较低优先级的进程,它们消耗的CPU时间会显示在这里。
  id:空闲(Idle)CPU 时间的百分比。这表示 CPU 空闲的时间百分比,没有任何任务在运行。
  wa:等待(Wait)CPU 时间的百分比。它表示 CPU 等待I/O操作完成的时间百分比,通常用于检测磁盘或其他I/O瓶颈。
  hi:硬中断(Hardware Interrupts)CPU 时间的百分比。它表示处理硬件中断的时间百分比,通常由硬件设备触发。
  si:软中断(Software Interrupts)CPU 时间的百分比。它表示处理软中断的时间百分比,通常由操作系统内核触发。
  st:虚拟化(Steal Time)CPU 时间的百分比。这个值通常在虚拟化环境中出现,表示虚拟机被宿主机夺走的CPU时间。

  第四行是系统内存和交换空间的统计信息。

  查看进程列表: top 的主要部分是进程列表,它会列出当前运行的所有进程。默认情况下,进程按照CPU使用率排序,最高的进程位于列表的顶部。你可以按下不同的键来改变排序方式,例如按下M键按内存使用率排序。

  理解各列的含义: 见本篇博客的ps命令介绍。

  交互式操作: top 命令允许在运行时进行交互式操作。你可以使用键盘上的不同键来改变排序、过滤进程、查看不同的系统信息等。按下h键可以查看帮助信息,列出了可用的交互命令。

  查看资源利用情况: 注意查看系统的资源利用情况,特别是 CPU 和内存的使用率。如果某个进程占用了大量资源,可以考虑采取措施来优化或终止该进程。

  退出 top 当完成分析后,可以按下q键来退出 top

管理后台进程

启动后台进程

  如果想要使某些程序在使用Shell的过程中始终运行,可以将它们放置到后台。为了将某一程序放置到后台,需要在命令行的末尾输入一个与号(&),如下所示:

java -jar a.jar &

  上面的代码指的是在后台执行java文件。

查看后台进程

  如果想要检查哪些命令在后台运行,可以使用jobs命令,如下所示:

jobs
[ 1] stopped (tty output) vi/tmp/myfile
[ 2] Running find /usr -print > /tmp/allusrfiles &
[ 3] Running nroff -man /usr/man2/* >/tmp/ man2 &
[ 4]- Running nroff -man /usr/man3/* >/tmp/man3 &
[ 5] + Stopped nroff -man /usr/man4/* >/tmp/man4

jobs和ps的区别

  jobsps 是两个不同的命令,用于查看系统中正在运行的进程和作业,它们有以下主要区别:

  1. 功能和用途

  • ps(Process Status):ps 命令用于查看系统中所有进程的信息,包括它们的PID、状态、CPU和内存使用情况等。它主要用于查看和管理进程。
  • jobsjobs 命令用于查看当前shell会话中的作业(通常是由shell启动的命令)。它主要用于查看和管理由当前shell会话启动的作业。

  2. 应用范围

  • ps 可以用于查看系统中所有进程,包括后台运行的系统进程和由其他用户启动的进程。

  • jobs 仅用于查看当前shell会话中的作业,通常用于查看和管理当前用户启动的命令。
      3. 输出格式

  • ps通常以详细的表格形式显示进程信息,提供更多的细节。

  • jobs 显示当前shell会话中的作业列表,通常包括作业号、状态和命令。
      4. 用途

  • ps 通常用于全局系统级别的进程监控,用于系统管理员或高级用户查看系统中的进程情况。

  • jobs 用于shell会话中的作业控制,例如在后台运行作业、挂起作业、恢复作业等。

  举个例子,当你在终端中启动一个长时间运行的命令,并且希望在后台运行,你可以使用 & 符号来将命令放入后台,然后使用 jobs 命令来查看后台作业列表。而 ps 命令则用于查看系统中运行的所有进程,包括后台进程和其他用户的进程。

停止进程

kill -9 [进程pid]

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

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

相关文章

ClickHouse进阶(七):Clickhouse数据查询-1

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 📌订阅…

SpringMVC应用

文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…

11.Redis的慢操作之rehash

Redis为什么快 它接收到一个键值对操作后,能以微秒级别的速度找到数据,并快速完成操作。 数据库这么多,为啥 Redis 能有这么突出的表现呢? 内存数据结构 一方面,这是因为它是内存数据库,所有操作都在内存上…

查看mysql数据库的charset和collation

SELECT * FROM information_schema.SCHEMATA WHERE schema_name test_data; 发现: chaset是utf8mb4,collation是utf8mb4_generic_ci 可笑的是我导入sql脚本,要把脚本中所有的utf8mb4改为utf8,将utf8mb4_generic_ci为utf8_unico…

React 开发一个移动端项目(1)

技术栈: 项目搭建:React 官方脚手架 create-react-appreact hooks状态管理:redux 、 redux-thunkUI 组件库:antd-mobileajax请求库:axios路由:react-router-dom 以及 historyCSS 预编译器:sass…

SpringBoot 拦截org.thymeleaf.exceptions.TemplateInputException异常

SpringBoot 拦截thymeleaf异常 org.thymeleaf.exceptions.TemplateInputException异常 org.thymeleaf.exceptions.TemplateProcessingE xception: Could not parse as each: "message : xxx " (template: “xxxx” - line xx, col xx) thymeleaf异常复现 你是故意的…

Vue3,Typescript中引用组件路径无法找到模块报错

是这么个事,我在vue3新创建的项目里,写了个组件叫headerIndex.vue,放到app.vue中import就会报错 路径肯定没写错,找到了解决方法,但是也没想明白为什么 解决方法如下 在vite-env.d.ts文件中加入 declare module &qu…

内网隧道代理技术(二十三)之 DNS隧道反弹Shell

DNS隧道反弹Shell DNS隧道 DNS协议是一种请求、应答协议,也是一种可用于应用层的隧道技术。DNS隧道的工作原理很简单,在进行DNS查询时,如果查询的域名不在DNS服务器本机缓存中,就会访问互联网进行查询,然后返回结果。如果在互联网上有一台定制的服务器,那么依靠DNS协议…

Vue进阶(贰幺幺)CVE-2020-11022/CVE-2020-11023漏洞解析

文章目录 一、前言二、漏洞原理三、修复方案3.1 升级jQuery3.2 1.x 升级至 3.x 需要考虑的问题3.2.1 table表格元素自动添加tbody3.2.2 方法变更 3.3 jquery migrate是什么 四、拓展阅读 一、前言 代码安全扫描阶段,前端资源审计发现jQuery版本过低导致生产系统存在…

(二十六)大数据实战——kafka集群之Kraft模式安装与部署

前言 本节内容主要介绍kafka3.0版本以后,一种新的kafka集群搭建模式看kraft,在该模式下,kafka高可用不在依赖于zookeeper,用 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直…

解决transform带来的z-index失效问题

现象如下: 其实下拉列表已经设置了z-index: 但是为什么z-index没有生效呢。 后来发现原来它的父级元素使用了transform进行垂直方向居中 网上查询了相关资料,说: tranform由于会构造一个新的context层, 然后这个层的z轴优先级会最低巴拉巴拉的&#xff…

【python零基础入门学习】python基础篇之文件对象open、模块以及函数的使用(三)

本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…

【C++】string类模拟实现上篇(附完整源码)

目录 前言1. string的基本结构2. 构造函数、析构函数2.1 构造函数的实现2.1.1带参构造函数 2.2析构函数2.3无参构造函数2.4无参和带参构造函数合并 3. string的遍历3.1 operator[ ]3.2迭代器模拟实现 (简单实现)3.3 const迭代器模拟实现 4. 数据的增删查改4.1 reser…

2、在Windows 10中安装和配置 PostgreSQL 15.4

一、PostgreSQL 安装前简介 PostgreSQL(通常简称为PG SQL)是一个强大、开源的关系型数据库管理系统(DBMS),它具有广泛的功能和可扩展性,被广泛用于企业和开发项目中,PostgreSQL 具有如下一些关键特点&…

【云原生系列】Docker学习

目录 一、Docker常用命令 1 基础命令 2 镜像命令 2.1 docker images 查看本地主机的所有镜像 2.2 docker search 搜索镜像 2.3 docker pull 镜像名[:tag] 下载镜像 2.4 docker rmi 删除镜像 2.5 docker build 构建镜像 3 容器命令 3.1 如拉取一个centos镜像 3.2 运行…

SpringMVC的常用注解,参数传递以及页面跳转的使用

目录 slf4j 常用注解 RequestMapping RequestParam RequestBody PathVariable 参数传递 首先在pom.xml配置文件中导入SLF4J的依赖 基础类型String 复杂类型 RequestParam PathVariable RequestBody 增删改查 返回值 void返回值 String返回值 modelString …

51单片机的简易篮球计分器倒计时仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机的简易篮球计分器倒计时仿真设计( proteus仿真程序原理图报告讲解视频) 1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接 51单片机的简易篮球计分器倒计时仿真设计( proteus仿真程序原理图报告讲解视频…

List常见面试问题

List的特点有哪些? Java中的List是一种存放有序的、可以重复的数据的集合,它允许重复元素的存在。List中的元素都有对应的一个序列号(索引)记录着元素的位置,因此可以通过这个序列号来访问元素。 ‍ Java中集合有哪些? Java中…

最新仿闲鱼链接+独立后台管理 跳转APP

2024最新仿xy链接源码 后台一键生成链接,后台管理教程:解压源码,修改数据库config/Congig 不会可以看源码里有教程 下载程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

【C进阶】分析 C/C++程序的内存开辟与柔性数组(内有干货)

前言: 本文是对于动态内存管理知识后续的补充,以及加深对其的理解。对于动态内存管理涉及的大部分知识在这篇文章中 ---- 【C进阶】 动态内存管理_Dream_Chaser~的博客-CSDN博客 本文涉及的知识内容主要在两方面: 简单解析C/C程序…