Linux命令进程管理工具top、ps、jps和tar以及守护进程nohup

进程管理工具top ps

概述

topps 是 Linux 系统中两个非常重要的用于管理和监控进程的命令工具。以下是它们的主要功能和区别:

top:

动态视图:top 提供了一个实时动态更新的视图,能够持续显示系统中当前正在运行的进程信息及其资源占用情况。

系统性能监控:除了显示进程信息外,top 还可以显示系统的整体性能指标,如平均负载(uptime,load average)、CPU使用率(%CPU)、内存使用量(%MEM)等。

更新频率:默认情况下,top命令会定期(通常是3秒钟)刷新输出,更新进程列表和系统状态。 top -d 2

ps:

静态视图:ps 命令在执行瞬间提供一个进程状态的快照,它不会像 top 那样持续刷新,一次性输出指定时刻的进程信息。

详细信息:ps 可以列出大量的进程详细信息,包括进程ID(PID)、父进程ID(PPID)、进程状态、CPU利用率、内存占用、启动时间和命令行等。

定制化输出ps 支持多种参数组合,可以灵活定制输出格式和选择要显示的进程,例如通过 -ef 参数查看全部进程的详细信息,或者通过 -aux 查看系统中所有用户的进程等。

top命令

top命令的输出如下

 命令字段详解

  • 第一行:系统运行时间和平均负载

当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载

  • 第二行:任务

任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务

  • 第三行:cpu状态
字段字段释义
ususer: 运行(未调整优先级的) 用户进程的CPU时间
sysystem: 运行内核进程的CPU时间
niniced:运行已调整优先级的用户进程的CPU时间
ididle:空闲时间
waIO wait: 用于等待IO完成的CPU时间
hi处理硬件中断的CPU时间
si处理软件中断的CPU时间
st这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)

  • 第四行:内存

全部可用内存、已使用内存、空闲内存、缓冲内存

  • 第五行:swap

全部、已使用、空闲和缓冲交换空间

  • 第七行至N行:各进程任务的的状态监控
字段释义
PID进程ID,进程的唯一标识符
USER进程所有者的实际用户名
PR进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT

virtual memory usage 虚拟内存,进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES

resident memory usage 常驻内存,驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR

SHR:shared memory 共享内存

1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

S

这个是进程的状态。它有以下不同的值:

  • D - 不可中断的睡眠态。
  • R – 运行态
  • S – 睡眠态
  • T – 被跟踪或已停止
  • Z – 僵尸态
%CPU自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100
%MEM进程使用的可用物理内存百分比
TIME+任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
COMMAND运行进程所使用的命令。进程名称(命令名/命令行)

进程查看ps

ps 命令是一个核心的进程查看命令,用于报告当前系统中进程的状态,常常与grep连用筛选 

常见的扩展选项

  • aux
    a:显示一个终端所有的进程
    u:显示进程的归属用户及内存使用情况
    x:显示没有关联控制终端的进程
  • axjf
    j:显示进程归属的进程组id、会话id、父进程id
    f:以ascii的形式显示出进程的层次关系

 jps-扩展

jps 是 Java Virtual Machine Process Status Tool 的缩写,它用于显示当前正在运行的 Java 进程的信息,包括进程 ID 和进程的类名或 JAR 文件名。

以下是 jps 命令的一些常见用法:

1. jps :显示当前正在运行的 Java 进程的进程 ID 和类名或 JAR 文件名。

进入到jdk的bin路径下

./jps

2. jps -l :显示当前正在运行的 Java 进程的进程 ID 和完整的主类名(包括包路径)或 JAR 文件路径。

3. jps -m :显示当前正在运行的 Java 进程的进程 ID、主类名或 JAR 文件名,以及传递给主类的参数。

4. jps -v :显示当前正在运行的 Java 进程的进程 ID、主类名或 JAR 文件名,以及传递给主类的参数和虚拟机参数。

5. jps -q :仅显示当前正在运行的 Java 进程的进程 ID,不显示类名或 JAR 文件名。

tar解压 

tar -zxvf 压缩文件名.tar.gz

tar -zxvf example.tar.gz -C /path/to/destination/directory/

命令分解说明:

tar: 表示使用tar工具。

-z: 选项指示tar在解压过程中使用gzip解压缩算法。

-x: 选项表示执行解压操作(extract)。

-v: (可选)增加详细输出,显示解压过程中的文件名。

-f: 指定后续跟的是要操作的档案文件名。

nohup 守护进程运行应用

nohup 是一个在类 Unix 操作系统(如 Linux 和 macOS)中广泛使用的命令,全称是 "no hang up",即“不挂断”。它的主要目的是允许用户在终端断开连接或注销账户后,仍然能够让指定的命令或程序在后台继续运行,不受 SIGHUP(挂起)信号的影响。

nohup java -jar your-project.jar &

如果你想要将输出重定向到一个日志文件,可以这样做:

nohup java -jar your-project.jar > /tmp/wms.log 2>&1 &

<think>好的,用户想了解Linux下查询Java进程的命令jps的使用方法。首先,我需要回忆一下jps的基本功能常见参数。根据提供的引用,jps是Java自带的工具,用来列出JVM进程。基础命令是直接输入jps,这会显示进程ID主类名。不过用户可能需要更详细的信息,比如完整的包名或JAR路径,这时候就需要用到参数,比如-l显示完整路径,-v显示JVM参数,-m显示传递给main方法的参数。 用户的问题可能不仅仅是如何使用基本命令,可能还想知道如何过滤特定的进程。例如,当有多个Java进程运行时,结合grep来筛选结果,如jps -l | grep MyApp。此外,引用中提到jps不能单独查询某个进程号,但可以通过grep来实现,比如jps -l | grep 1234,虽然进程号可能不需要,但如果是根据应用名过滤的话会更实用。 另外,需要注意权限问题,如果用户没有权限,可能无法看到所有Java进程,这时候可能需要sudo。不过引用中没有提到这点,但实际使用中可能会遇到,可能需要提醒用户。 还要考虑不同参数组合的效果,比如jps -mlv可以同时显示进程ID、完整类名、JVM参数main参数。这些组合能提供更全面的信息,帮助用户诊断问题。同时,需要确保示例命令正确,比如使用正确的参数顺序格式。 最后,用户可能对jps的局限性感兴趣,比如它只能列出当前用户有权限查看的进程,或者在某些容器环境中可能不可用。但根据引用内容,主要需要集中在已有信息上,不扩展未提及的部分。总结下来,回答需要分步骤介绍命令的基本使用、常用参数、过滤方法注意事项,确保用户能快速掌握jps的使用方法。</think>### Linux系统下jps命令使用方法 #### 一、基础用法 1. **查看所有Java进程** 直接输入`jps`命令可列出当前用户权限下所有Java进程的**进程ID(PID)****主类名**。 ```bash jps ``` 输出示例: ``` 1234 MyApplication 5678 Jps ``` [^1][^2] 2. **显示完整类名或JAR路径** 使用`-l`参数(long format)可显示完整的包名或JAR文件路径: ```bash jps -l ``` 输出示例: ``` 1234 com.example.MyApplication 5678 sun.tools.jps.Jps ``` [^2] --- #### 二、进阶参数组合 1. **显示JVM参数** 通过`-v`参数查看**JVM启动参数**,适用于调试内存、垃圾回收等问题: ```bash jps -v ``` 输出示例: ``` 1234 MyApplication -Xmx512m -Dspring.profiles.active=prod ``` 2. **显示main方法参数** 使用`-m`参数可查看传递给`main()`方法的参数: ```bash jps -m ``` 输出示例: ``` 1234 MyApplication --port=8080 --debug=true ``` [^4] 3. **组合使用参数** 可合并`-l`、`-m`、`-v`参数获取完整信息: ```bash jps -mlv ``` --- #### 三、进程过滤技巧 1. **使用管道符`grep`筛选** 当系统运行多个Java进程时,可通过`grep`过滤目标应用: ```bash jps -l | grep "MyApplication" ``` 输出示例: ``` 1234 com.example.MyApplication ``` [^3] 2. **查看特定用户进程** 若需查看其他用户的Java进程,需使用`sudo`提升权限: ```bash sudo jps -l ``` --- #### 四、注意事项 1. **仅显示当前用户进程** jps默认只显示当前用户启动的Java进程,无法查看其他用户的进程(除非使用`sudo`)[^2]。 2. **依赖JVM环境** 需确保`$JAVA_HOME/bin`已加入系统PATH环境变量[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涵冰...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值