프로세스가 Mac OS X를 실행 중인지 확인한 다음 코드를 실행하십시오.

프로세스가 Mac OS X를 실행 중인지 확인한 다음 코드를 실행하십시오.

Google Chrome 캐시를 지우는 스크립트를 만들고 있습니다. 그런데 크롬이 열려 있는지 확인하고 싶은데, 열려 있으면 코드를 실행하지 않고, 열려 있지 않으면 코드를 실행합니다. 프로세스 이름은 Google Chrome인데 코드가 작동하지 않는 것을 알 수 있습니다.

이것이 제가 지금까지 한 일입니다. 내가 뭘 잘못했나요?

SERVICE='Google Chrome'

if ps ax | grep -v grep | grep $SERVICE
then
    RUNS THE CODE
else
    echo "PLEASE CLOSE GOOGLE CHROME"
fi

어떤 도움이라도 대단히 감사하겠습니다 :)

답변1

pgrep@StéphaneChazelas가 언급했듯이 맨 페이지에서 -를 사용할 수 있습니다 .

pgrep 명령은 실행 중인 시스템에서 프로세스 테이블을 검색하고 명령줄에 제공된 기준과 일치하는 모든 프로세스의 프로세스 ID를 인쇄합니다.

SERVICE='Google Chrome'

if pgrep -xq -- "${SERVICE}"; then
    echo running
else
    echo not running
fi

답변2

"$SERVICE"를 인용해야 합니다.

SERVICE='Google Chrome'

if ps ax | grep -v grep | grep "${SERVICE}" &> /dev/null; then
    echo running
else
    echo not running
fi

관련 정보