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)

관련 정보