zoukankan      html  css  js  c++  java
  • linux查询进程号,出现两个进程

    [root@ADM01B ~]# ps -ef|grep iesmgr
    root      5929  5321  0 09:38 pts/7    00:00:00 grep iesmgr
    root      9798     1  0 Jun28 ?        00:00:05 iesmgr
    [root@ADM01B ~]# kill -9 5929
    -bash: kill: (5929) - 没有那个进程
    [root@ADM01B ~]# kill -9 9798
    [root@ADM01B ~]# 
    

    当我在linux系统下查询某个程序的进程时出现两个进程,进程号分别为5929和9798
    我想把该进程杀掉 kill -9 5929,但是显示没有那个进程,然后我又杀掉9798这个进程kill -9 9798,成功杀掉了。

    对此现象疑惑不解。为啥有这个进程,kill的时候有显示没有。
    最后通过查资料知道,ps -ef|grep iesmgr命令其实是分两步完成的。第一步执行ps -ef查询所有进程,第二步执行grep iesmgr过滤出进程中带有iesmgr关键字的进程

    这样就出现了一个问题:其中grep iesmgr这个命令本身执行的时候也是个进程,并且也带有关键字iesmgr。所以也会显示出来,这其实是grep进程,而不是iesmgr进程。grep进程在命令执行完之后就结束了,所以kill该进程的时候显示-bash: kill: (5929) - 没有那个进程

    如果不想显示grep进程怎么办,可以使用下面的命令:
    # ps -ef|grep iesmgr |grep -v grep

    grep的-v参数是取反,也就是说grep -v grep是过滤掉那些带grep关键字进程,即把grep iesmgr这个进程过滤掉。


    补充:

    1. ps命令
      ps [选项]
      下面对命令选项进行说明:
      -e 显示所有进程。
      -f 全格式。
      -h 不显示标题。
      -l 长格式。
      -w 宽输出。
      a 显示终端上的所有进程,包括其他用户的进程。
      r 只显示正在运行的进程。
      u  以用户为主的格式来显示程序状况。
      x 显示所有程序,不以终端机来区分。

    2. grep命令
      grep [options]
      [options]主要参数:
      -c:只输出匹配行的计数。
      -I:不区分大 小写(只适用于单字符)。
      -h:查询多文件时不显示文件名。
      -l:查询多文件时只输出包含匹配字符的文件名。
      -n:显示匹配行及 行号。
      -s:不显示不存在或无匹配文本的错误信息。
      -v:显示不包含匹配文本的所有行。

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

  • 相关阅读:
    leetcode Remove Linked List Elements
    leetcode Word Pattern
    leetcode Isomorphic Strings
    leetcode Valid Parentheses
    leetcode Remove Nth Node From End of List
    leetcode Contains Duplicate II
    leetcode Rectangle Area
    leetcode Length of Last Word
    leetcode Valid Sudoku
    leetcode Reverse Bits
  • 原文地址:https://www.cnblogs.com/Corphish/p/7097369.html
Copyright © 2011-2022 走看看