查找 ProcessID - pidof 不起作用

查找 ProcessID - pidof 不起作用

我需要尝试找到进程的 ProcessId。

最初我在做:

application="/home/user/apps/appName.app"
appPid=$(pidof -x $application)

这很好用。

然而,现在事实证明该应用程序可以从多个位置运行,例如:

/home/user/apps/appName.app
/home/user/desktop/appName.app
/home/user/desktop/link to apps/appName.app

所以我试着简单地做

application="appName.app"
appPid=$(pidof -x $application) 

但这没有找到任何匹配项。我认为pidof需要完整路径来匹配。

我还能如何获取 ProcessId?


我想我有必要进一步解释一下。

如果我做

ps aux | grep application.app

我得到两个结果。

user 29912 . . . . /home/user/apps/application.app
user 12345 . . . . grep application.app

如果我那么做

var1=`pgrep application.app`
echo $var1

结果是空白的。应该是29912。

答案1

pgrep 本身返回进程 ID。使用:

     $pgrep <process_name>


     $pgrep bash
     3896
     4013
     4115

如果您希望输出存储在变量中:

   var1=`pgrep <appname>`


  pids=`pgrep bash`
  echo $pids
  3896 4013 4115

答案2

我将使用以下内容:

appPid=$(pgrep $application)

相关内容