プロセスが開始または停止しているかどうかにかかわらず、このスクリプトが常に「実行中」を返す理由はありますか?if-statementは常にTRUEと評価されます
if ps ax | grep -v grep | grep "processName" > /dev/null
then
echo $"running"
else
echo $"not running"
fi
は
非常
ありがとうUPDATE: 私は多分間違って何かが他の場所であり、私のスクリプトの完全な例を追加します。case "$1" in
start)
# Start daemons.
echo -n $"Starting daemon: "
;;
stop)
# Stop daemons.
echo -n $"Shutting down: "
echo
;;
status)
pgrep -f "ProcessName" > /dev/null
if [ $? -eq 0 ]; then
echo $"ProcessName is running"
else
echo $"ProcessName is not running"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
UPDATE 2:
[[email protected] init.d]# pgrep -f "MyProcess" > /dev/null
[[email protected] init.d]# echo $?
0
[[email protected] init.d]# service MyProcess stop
Shutting down MyProcess: Terminated
[[email protected] init.d]# pgrep -f "MyProcess" > /dev/null
[[email protected] init.d]# echo $?
1
しかし、すべての時間
質問に答えるには、はいあります。 ;-) –
@Mike、/ dev/nullへの出力リダイレクトを削除するとどうなるでしょうか?実際に実行中のプロセス、または同様の名前のものはありますか? – pilcrow
@pilcrow私のプロセスが開始されると、プロセスの結果が表示されます。プロセスが停止すると、結果は表示されません。 – Mike