특정 이름의 특정 파일이 실행되고 있는지 확인할 수 있는지 궁금합니다. 나는 파일 이름 대신 PID가 표시되는 다양한 상황을 보았지만 오히려 파일 이름 경로를 선호했습니다. 예를 들어, test.php라는 파일이 PHP 명령을 통해 실행되고 있다고 가정합니다(이 경우 파일이 무한 루프이므로 파일이 무한정 실행된다고 가정합니다). 이 특정 파일이 현재 실행되고 있는 내용을 알려주는 작성할 수 있는 명령이 있습니까? 이것이 가능하지 않은 경우 현재 실행 중인 모든 PHP 파일을 볼 수 있습니까? 현재 Ubunutu 18.04 LTS를 사용하고 있습니다.
답변1
노력하다 pgrep
:
pgrep -f test.php
그러면 명령의 PID가 출력됩니다.
선택하다:
ps aux | grep '[t]est\.php'
그러면 해당 라인이 출력됩니다 ps aux
.
답변2
또 다른 옵션은 killall을 사용하는 것입니다.
killall -0 -q test.php && echo test.php is running
명령 이름에도 불구하고 프로세스는 종료되지 않습니다.
답변3
#!/bin/sh
processname='login'
if [ "$(pgrep $processname)x" != "x" ]
then
echo $processname is running
else
echo $processname is NOT running
fi
반환 값 대신 종료 상태를 사용하고 더 간결한 구문을 사용하는 대체 버전
#!/bin/sh
processname='login'
pgrep $processname > /dev/null
test $? -eq 0 && echo "$processname is running" || echo "$processname is NOT running"