首页 > 系统相关 >【Linux】ps -ef|grep -v grep|awk '{print $2}' 命令详解

【Linux】ps -ef|grep -v grep|awk '{print $2}' 命令详解

时间:2022-12-14 20:22:08浏览次数:73  
标签:ps grep ef jar awk print

前言



第一步:grep -v grep

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

  • ps -ef|grep java就是通过管道的方式,将ps命令查询出来的进程信息内容筛选出与jar进程相关的数据

  • 但是使用grep命令过滤时会查询出grep自己的进程信息,示例如下:

    [root@localdomain1 ~]# ps -ef|grep xh-1.0-SNAPSHOT.jar
    root      3256     1  0 Aug11 ?        00:17:19 java -jar xh-1.0-SNAPSHOT.jar --spring.config.location=application.yml
    root      6435  6395  0 08:38 pts/1    00:00:00 grep --color=auto xh-1.0-SNAPSHOT.jar
    
  • 可以看到在查询到的进程信息中,除了我们需要的xh-1.0-SNAPSHOT.jar进程,还包括了grep --color=auto进程信息

  • 大多数情况下,在编写脚本时,往往需要精确获取到单一进程的信息,此时就需要通过 -v 参数排除掉grep进程的信息数据

  • -v 参数,作用是反转查找,即过滤出除了参数后面的其他数据,示例如下

    [root@localdomain1 ~]# ps -ef|grep xh-1.0-SNAPSHOT.jar |grep -v grep
    root      3256     1  0 Aug11 ?        00:17:19 java -jar xh-1.0-SNAPSHOT.jar --spring.config.location=application.yml
    
  • 可以发现,当我们在后面添加了|grep -v grep后,查询出来的结果就只剩下我们需要的xh-1.0-SNAPSHOT.jar进程信息了,说明grep进程已经被排除在外了

第二步:awk '{print $2}'

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息

awk处理过程: 依次对每一行进行处理,然后输出

print & $0 是awk打印指定内容的主要命令

  • 在第一步中,我们查询出来了jar进程的信息,此时需要获取到这条进程信息的PID

  • 我们就可以使用awk命令将自己需要的某一列数据单独提取出来,示例如下

    [root@localdomain1 ~]# ps -ef|grep xh-1.0-SNAPSHOT.jar|grep -v grep|awk '{print $2}'
    3256
    
  • 其中,$2代表提取进程信息中第二列的值,而我们使用ps命令查询出的进程信息中的第二列对应的正好就是进程的PID(注意:$0表示获取整个当前行)

  • 可以看到,通过awk '{print $2}'命令,我们成功拿到了xh-1.0-SNAPSHOT.jar进程的PID

类似脚本示例(脚本来源

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 

标签:ps,grep,ef,jar,awk,print
From: https://www.cnblogs.com/exmyth/p/16983420.html

相关文章

  • eXosip eXosip_automatic_refresh函数剖析
    函数原型voideXosip_automatic_refresh(structeXosip_t*excontext){eXosip_subscribe_t*js;eXosip_dialog_t*jd;eXosip_reg_t*jr;time_tnow;now=osip_ge......
  • PHPstorm配置PHP_CodeSniffer代码检查工具
    目录1.PHPCodeSniffer介绍2.安装PHP_CodeSniffer3.使用PHPStorm设置PHPCS4.测试PHP_CodeSniffer的检测功能参考资料1.PHPCodeSniffer介绍PHP_CodeSniffer对PHP文......
  • SiteFactory支持PowerPoint一键粘贴
    ​ 最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能。我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的。目前还没有固定哪一个......
  • SiteFactory支持PowerPoint粘贴
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java"......
  • 01.Mac安装Eclipse
    Mac安装Eclipse下载先进官网:https://www.eclipse.org/点击右上角Download按钮,等待下载结束。打开下载后的文件,打开EclipseInstaller.app文件选择图标为Jav......
  • linq 如何使用left join?
    提问linq如何使用leftjoin?回答fromvinlist1joincinlist2onv.[条件]equalsc.[条件]selectnew实体......
  • SiteFactory支持PowerPoint导入
    ​ 项目需求可发布文章需求涉及到富文本编辑器经过查阅我选择了较为简便不需要后端支持可独立完成的tinymce框架官方文档也是相当完整虽然都是全英文但是有强大的......
  • SiteFactory支持PowerPoint上传
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml......
  • Failed to execute goal on project apps-customize: Could not resolve dependencies
    Failedtoexecutegoalonprojectapps-customize:Couldnotresolvedependenciesforprojectcom.xxx:apps-xxx:jar:836583502xxx0-standard-Vxxx-release_xxx-SNAPS......
  • 布客社区近日指明DevOps的三层含义和未来发展方向
    DevOps三层含义:运维自动化,写一系列反复使用的脚本来简化一遍一遍敲命令的操作。运维开发一体化,使运维或者交付和开发能够互换职责,人员能力更多面,流动更灵活。吸收并继......