プロセスがaa.shが実行されているかどうかを確認するLinuxコマンドは何ですか? ps コマンドが機能していないようで、シェル スクリプト名が表示されません。
お知らせ下さい。
上記の回答に追加 -
スクリプトで使用するには、次を使用します:-
result=`ps aux | grep -i "myscript.sh" | grep -v "grep" | wc -l`
if [ $result -ge 1 ]
then
echo "script is running"
else
echo "script is not running"
fi
pgrep -f aa.sh
ID で何かを行うには、それをパイプします。ここで、すべての子タスクを強制終了します。
pgrep aa.sh | xargs pgrep -P ${} | xargs kill
プロセスが実行されている場合にコマンドを実行する場合は、これを実行します
pgrep aa.sh && echo Running
mklement0 による最後の回答に非常に感銘を受けました/etc/crontab
。私は彼の答えに基づいて、プログラムがまだ実行されているかどうかを示すログイン スクリプトを作成しました。scripts.sh
ログインごとに -file を介してこれを実行.profile
し、ログインごとに即座に通知を受け取ります。
cat scripts.sh
#!/bin/bash
getscript() {
pgrep -lf ".[ /]$1( |\$)"
}
script1=keepalive.sh
script2=logger_v3.py
# test if script 1 is running
if getscript "$script1" >/dev/null; then
echo "$script1" is RUNNING
else
echo "$script1" is NOT running
fi
# test if script 2 is running:
if getscript "$script2" >/dev/null; then
echo "$script2" is RUNNING
else
echo "$script2" is NOT running
fi
すべてのプロセスを表示するには、ps にオプションを指定します。例は次のとおりです。
ps -A | grep "myshellscript.sh"
詳細については、http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/を確認してください。
Basile Starynkevitch がコメントpgrep
で述べたように、別の解決策があります。