Shell命令管理进程

news2024/11/27 8:46:17

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.coloradmin.cn/o/992854.html

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

相关文章

24、DAPlink仿真器-STM32F103C8T6

参考文章: A、https://oshwhub.com/nice0513/daplink-fang-zhen-qi B、https://oshwhub.com/Southerly/daplink-fang-zhen-qi-swd C、https://oshwhub.com/jixin002/stm32f103c8t6_cmsis-dap 串口烧录Hex文件 问题:不支持U盘拖拽,没有识别出U…

Java使用本地浏览器打开网页工具类分享

本文主要分享一个封装工具类,该工具类已实现查找本地可运行的浏览器打开网页。 package com;import java.lang.reflect.Method;/*** browse util** author Roc-xb*/ public class BrowseUtil {public static final String[] BROWSERS {"firefox", "…

UDP协议和报文格式,校验和,CRC的含义

💖💖💖每日一看,学习动力 一、UDP协议及其报文格式 UDP:特点:无连接,不可靠传输 报头里面有啥呢? 那么首先我要先提问一下?2个字节,可以表示的数据范围有多大…

【Sentinel Go】新手指南、流量控制、熔断降级和并发隔离控制

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开…

C语言入门Day_17 循环的控制

目录 前言 1.break 2.continue 3.易错点 4.思维导图 前言 我们知道当循环判断的边界条件不成立以后,循环就结束了。除此以外,我们如果想要提前结束循环,或者在循环中跳过某一次循环代码的执行,应该怎么做呢? 假如…

数据治理-数据架构-企业数据架构

是什么 数据架构定义了对组织非常重要元素的标准术语和设计。企业数据架构的设计中包括业务数据描述,如数据的收集、存储、整合、移动和分布。 当数据在组织中通过源或者接口流动时,需要安全、集成、存储、记录、分类、共享的报表和分析,最终…

3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、点云转图像、点云转BEV。 目录 1、KITTI数据集中3D框可视化的效果 2、先看个视频,了解KITTI 的基本情况 3、来到KITTI官网,下…

C++ 11:多线程相关问题

目录 一. 线程类thread 1.1 thread的一些接口函数 2.2 通过thread创建多线程 二. this_thread 三. 互斥锁与原子操作 3.1 多线程中的加锁与解锁 3.1.1 mutex类 3.1.2 lock_guard 类 3.3 原子性操作 四. 条件变量 4.1 线程互斥的缺陷 4.2 condition_variable 实现线程…

图片mask任务和自监督损失函数MAE、Beit、MarkFeature、DINO、DINOv2

MAE (Masked Autoencoders Are Scalable Vision Learners) 来自Masked Autoencoders Are Scalable Vision Learners,Our loss function computes the mean squared error (MSE) between the reconstructed and original images in the pixel space. 几个关键点&…

无涯教程-JavaScript - IMSUB函数

描述 IMSUB函数以x yi或x yj文本格式返回两个复数的差。减去复数时,实数和虚数系数分别相减,即从复数a bi中减去复数c di的方程为- (a bi)-(c in)(a-c)(b-d)我 语法 IMSUB (inumber1, inumber2)争论 Argument描述Required/OptionalInumber1The complex number from …

【C++】可变参数模板

2023年9月9日,周六下午 这个还是挺难学的,我学了好几天... 在这里我会举大量的示例程序,这样可以有一个更好的理解, 不定期更新。 目录 推荐文章: 示例程序一:拼接字符串 示例程序二:求整…

Python散点图

散点图 散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间…

基于Java+SpringBoot+Vue前后端分离农产品直卖平台设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

气膜建筑为什么被称为低碳环保建筑?

近年来,环保理念逐渐深入人心以及国家对于环境保护力度的加强,绿色建筑也得到了发展。其中,气膜建筑的建设更是进入了科技化、标准化与國际化发展时期,气膜建筑的使用能将建筑工程建设推向了一个新的高潮,使得公益性和…

业务架构图是什么?用什么软件制作比较好?

​一 业务架构图是什么? 1.1业务架构图简介 业务架构图是一种可视化表达方法,用于描述一个企业或产品的业务活动、流程、系统、数据和关系。它将业务流程、职能、数据流动以及系统之间的交互关系可视化,帮助人们更好地理解业务运作的全…

Claude 2,它有 GPT-4 一些无法超越的能力

文章目录 场景1:处理长文本场景2:上传文件场景3:进行冗长的多轮对话场景4:我的提示词里涉及2021年9月之后的信息 场景1:处理长文本 和 ChatGPT 相比,Claude 2 最大的优势就是它高达 10 万的 Token 数量。要…

工程可以编译通过,但是Vscode依然有波浪线提示

前言 (1)我们在使用Vscode进行开发的时候,命名文件成功编译通过了,但是Vscode还是有波浪线的提示。 (2)其实成功编译通过就行,但是肯定还会存在一些强迫症患者,硬要消除这个报错。接…

Linux Ubuntu20.04深度学习环境快速配置命令记录

1、更新系统包 sudo apt-get updatesudo apt-get upgrade 2、安装显卡驱动 使用apt方式安装驱动,多数情况不容易成功, 使用一下方法更佳: 1.查看合适显卡的驱动版本 ubuntu-drivers devices NVIDIA GeForce 驱动程序 - N 卡驱动 | NVI…

Qt案例-编译阿里云OSS对象存储C++ SDK源码,并进行简单下载,上传数据,显示进度等相关功能

项目中用到了阿里云OSS对象存储来保存数据,由于以前没用过这个库,就下载了C版的sdk源码重新编译了一次,并使用Qt调用;不得不说这可能是我编译源码最轻松的一次。 目录标题 简述OSS图形化管理工具编译源码Qt 添加引用常用 Endpoint…

JVM类加载和双亲委派机制

当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把类加载到JVM,本文主要说明类加载机制和其具体实现双亲委派模式。 一、类加载机制 类加载过程: 类加载的过程是将类的字节码加载到内存中的过程,主要包括…