프로세스의 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)