私は起動とApache(mysqlのための別のもの)を終了するのに役立つ小さな自動化アプリケーションを作ったので、私はターミナルに行く必要はありませんその怠け者)。今ここapplescriptユーティリティの問題/ bash /プロセスの検出
は、私はそれのために使用するAppleScriptです:
on run {input, parameters}
set apache2state to (do shell script "/bin/ps -arx |/usr/bin/grep apache2 |wc -l")
repeat until apache2state does not start with " "
set apache2state to text 2 thru -1 of apache2state
end repeat
if apache2state is equal to "3" then
do shell script "/opt/local/bin/port load apache2" with administrator privileges
else
do shell script "/opt/local/bin/port unload apache2" with administrator privileges
end if
end run
今これは私が実際にApacheが動作しているプロセスの数を基準とした整数値に比較していたという事実を除いて、作品..それは本当に信頼できるものではありません。
apache(とmysql、別のスクリプトが同じもの)が動作しているかどうかをテストする良い方法がありますか?問題は、彼らが遮断されたときにシェルコマンドがちょうど同じ整数値を返すということです(だけではなく、1のためのgrepプロセス...)ここthattheソリューションを指定ひどく働いていたように編集
おかげ
grepはApacheのスレッドのインスタンスと、apacheと言った他のプロセス(tail -r /var/log/apache2/error.logなど)を返すためです。
サービスは本質的に、それはまだいくつかの情報を与えるので、ユキヒョウで非推奨ですが、完全ではない、私は、代替と私の答えを更新しました – cromestant
@cromestantけれども感謝されますSnow Leopardのソリューション。 – sakra
ありがとう、私はちょうど同様にlaunchctlリストを使用して同様の答えを投稿するつもりだった。ありがとうございました – cromestant