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命令的输出中的 PID、TTY、TIME 和 CMD 是关于进程的信息的字段,它们分别代表以下内容:
· 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的区别
jobs 和 ps 是两个不同的命令,用于查看系统中正在运行的进程和作业,它们有以下主要区别:
1. 功能和用途:
ps(Process Status):ps命令用于查看系统中所有进程的信息,包括它们的PID、状态、CPU和内存使用情况等。它主要用于查看和管理进程。jobs:jobs命令用于查看当前shell会话中的作业(通常是由shell启动的命令)。它主要用于查看和管理由当前shell会话启动的作业。
2. 应用范围:
-
ps可以用于查看系统中所有进程,包括后台运行的系统进程和由其他用户启动的进程。 -
jobs仅用于查看当前shell会话中的作业,通常用于查看和管理当前用户启动的命令。
3. 输出格式: -
ps通常以详细的表格形式显示进程信息,提供更多的细节。 -
jobs显示当前shell会话中的作业列表,通常包括作业号、状态和命令。
4. 用途: -
ps通常用于全局系统级别的进程监控,用于系统管理员或高级用户查看系统中的进程情况。 -
jobs用于shell会话中的作业控制,例如在后台运行作业、挂起作业、恢复作业等。
举个例子,当你在终端中启动一个长时间运行的命令,并且希望在后台运行,你可以使用 & 符号来将命令放入后台,然后使用 jobs 命令来查看后台作业列表。而 ps 命令则用于查看系统中运行的所有进程,包括后台进程和其他用户的进程。
停止进程
kill -9 [进程pid]
相关文章:
Shell命令管理进程
Shell命令管理进程 列出进程 ps命令 top命令 管理后台进程 启动后台进程 查看后台进程 jobs和ps的区别 停止进程 Linux除了是一种多用户操作系统之外,还是一种多任务系统。多任务意味着可以同时运行多个程序。Linux 提供了相关的工具来列出运行中的进程,监视…...
python创建exe文件
1、搭建环境 pip install pyinstaller 2、准备测试代码 exe_test.py import timeprint("hello") print("hello") print("hello") print("hello")time.sleep(5) 注:添加sleep以便在执行exe文件的时候能看到结果 3、生…...
【数据结构】AVL树的插入与验证
文章目录 一、基本概念1.发展背景2.性质 二、实现原理①插入操作1.平衡因子1.1平衡因子的更新1.1.1树的高度变化1.1.2树的高度不变 2. 旋转2.1左旋2.2右旋2.3右左双旋2.4 左右双旋 ②验证1.求二叉树高度2. 判断是否为AVL树 源码总结 一、基本概念 1.发展背景 普通的二叉搜索树…...
9.3.3网络原理(网络层IP)
一.报文: 1.4位版本号:IPv4和IPv6(其它可能是实验室版本). 2.4位首部长度:和TCP一样,可变长,带选项,单位是4字节. 3.8位服务类型 4.16位总长度:IP报头 IP载荷 传输层是不知道载荷长度的,需要网络层来计算. IP报文 - IP报头 IP载荷 TCP报文 TCP载荷 IP载荷(TCP报文) …...
代码随想录算法训练营第四十八天| LeetCode121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III
121. 买卖股票的最佳时机 题目描述: 121. 买卖股票的最佳时机. 解法 dp class Solution(object):def maxProfit(self, prices):if not prices:return 0dp0 0# 0表示不持有股票,1表示持有股票dp1 0-prices[0]for i in range(1,len(prices)):# 当前没有股票# 两…...
C++新经典10--vector以及其使用
vector vector类型是一个标准库中的类型,代表一个容器、集合或者动态数组这样一种概念。既然是容器,那就可以把若干个对象放到里面。当然,这些对象的类型必须相同。简单来说,可以把一堆int型数字放到vector容器中去,复…...
std : : vector
一.简介 std::vector 的底层实现通常基于动态数组(dynamic array),它是一种连续分配的内存块,允许元素的快速随机访问。下面是 std::vector 的一些关键特点和底层实现细节: 连续内存块:std::vector 内部使…...
AJAX学习笔记8 跨域问题及解决方案
AJAX学习笔记7 AJAX实现省市联动_biubiubiu0706的博客-CSDN博客 跨域:指一个域名的网页去请求另外一个域名资源.比如百度页面去请求京东页面资源. 同源与不同源三要素:协议,域名,端口 协议一致,域名一致,端口一致.才算是同源.其他一律不同源 新建项目测试: 1.window.open();…...
webhook--详解(gitee 推送)
一、简介 webhook 是一种基于 HTTP 的回调函数,可在 2 个应用编程接口(API)之间实现轻量级的事件驱动通信。是一种新型的前后端交互方式,一种对客户端-服务器模式的逆转,在传统方法中,客户端从服务器请求数…...
高速路自动驾驶功能HWP功能定义
一、功能定义 高速路自动驾驶功能HWP是指在一般畅通高速公路或城市快速路上驾驶员可以放开双手双脚,同时注意力可在较长时间内从驾驶环境中转移,做一些诸如看手机、接电话、看风景等活动,该系统最低工作速度为60kph。 如上两种不同环境和速度…...
Leetcode113. 路径总和 II
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 官方题解:力扣(LeetCode)官网 - 全…...
分布式锁之redis实现
docker安装redis 拉取镜像 docker pull redis:6.2.6 查看镜像 启动容器并挂载目录 需要挂在的data和redis.conf自行创建即可 docker run --restart always -d -v /usr/local/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis/data:/dat…...
Idea中如何在一个项目中引入其他子模块?
首先在Settings打开Project Structure,然后找到Modules,点击加号点击import module,将需要引进的module引进来。 然后点击Artifacts 可以看到比如说day22…这个是我现在的项目,day16是我需要引入的。那么就在红色横线上面右键点第…...
UDP协议概述
传输层里比较重要的两个协议,一个是 TCP,一个是 UDP。TCP 是面向连接的,UDP 是面向无连接的。 所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结…...
Python-tracemalloc-跟踪内存分配
tracemalloc 模块是一个用于对 python 已申请的内存块进行debug的工具。它能提供以下信息: 定位对象分配内存的位置 按文件、按行统计python的内存块分配情况: 总大小、块的数量以及块平均大小。 对比两个内存快照的差异,以便排查内存泄漏 显示前10项 显示内存…...
02 CSS技巧
02 CSS技巧 clip-path 自定义形状,或者使用自带的属性画圆等circle HTML结构 <body><div class"container"></div> </body>CSS结构 使用*polygon*自定义形状 .container {width: 300px;height: 300px;background-color: re…...
Yarn资源调度器
文章目录 一、Yarn资源调度器1、架构2、Yarn工作机制3、HDFS、YARN、MR关系4、作业提交之HDFS&MapReduce 二、Yarn调度器和调度算法1、先进先出调度器(FIFO)2、容量调度器(Capacity Scheduler)3、公平调度器(Fair …...
android上架备案公钥和md5获取工具
最近很多公司上架遇到了一个问题,就是要提供app的备案证明,现在android上架都需要备案了,但是我们的证书都是通过工具生成的,哪里知道公钥和md5那些东西呢?无论安卓备案还是ios备案都需要提供公钥和md5。 包括ios的备案…...
SpringBoot系列(12):SpringBoot集成log4j2日志配置
最近项目上有使用到log4j2日志模板配置,本文简单总结一下之前的学习笔记,如有纰漏之处,请批评指正。 1. log4j2日志依赖 使用log4j2日志模板时,需要引入相关依赖,下边的两种依赖方式均可。 1.1 使用sl4j依赖时 <…...
HTML事件列表
鼠标事件 属性描述DOMonclick当用户点击某个对象时调用的事件句柄。2oncontextmenu在用户点击鼠标右键打开上下文菜单时触发ondblclick当用户双击某个对象时调用的事件句柄。2onmousedown鼠标按钮被按下。2onmouseenter当鼠标指针移动到元素上时触发。2onmouseleave当鼠标指针…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
