Getting pids from ps -ef |grep keyword

后端 未结 6 924
被撕碎了的回忆
被撕碎了的回忆 2020-12-04 07:42

I want to use ps -ef | grep \"keyword\" to determine the pid of a daemon process (there is a unique string in output of ps -ef in it).

I can kill the pr

相关标签:
6条回答
  • 2020-12-04 07:52

    ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'

    0 讨论(0)
  • 2020-12-04 07:57

    To kill a process by a specific keyword you could create an alias in ~/.bashrc (linux) or ~/.bash_profile (mac).

    alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"
    
    0 讨论(0)
  • 2020-12-04 08:02

    You can use pgrep as long as you include the -f options. That makes pgrep match keywords in the whole command (including arguments) instead of just the process name.

    pgrep -f keyword
    

    From the man page:

    -f       The pattern is normally only matched against the process name. When -f is set, the full command line is used.


    If you really want to avoid pgrep, try:

    ps -ef | awk '/[k]eyword/{print $2}'
    

    Note the [] around the first letter of the keyword. That's a useful trick to avoid matching the awk command itself.

    0 讨论(0)
  • 2020-12-04 08:16

    This is available on linux: pidof keyword

    0 讨论(0)
  • 2020-12-04 08:17

    Try

    ps -ef | grep "KEYWORD" | awk '{print $2}'

    That command should give you the PID of the processes with KEYWORD in them. In this instance, awk is returning what is in the 2nd column from the output.

    0 讨论(0)
  • 2020-12-04 08:18

    I use

    ps -C "keyword" -o pid=
    

    This command should give you a PID number.

    0 讨论(0)
提交回复
热议问题