web-dev-qa-db-ja.com

プロセスがMacOS Xを実行しているかどうかを確認してから、コードを実行します

GoogleChromeのキャッシュをクリアするスクリプトを作成しています。ただし、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
Ryan Hawdon

@StéphaneChazelasが言及しているように、マニュアルページからpgrepを使用できます。

Pgrepコマンドは、実行中のシステムのプロセステーブルを検索し、コマンドラインで指定された基準に一致するすべてのプロセスのプロセスIDを出力します。

SERVICE='Google Chrome'

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

「$ SERVICE」を引用する必要があります:

SERVICE='Google Chrome'

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