38

プロセスがaa.shが実行されているかどうかを確認するLinuxコマンドは何ですか? ps コマンドが機能していないようで、シェル スクリプト名が表示されません。

お知らせ下さい。

4

9 に答える 9

12

上記の回答に追加 -

スクリプトで使用するには、次を使用します:-

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
于 2014-02-15T21:12:35.903 に答える
2
pgrep -f aa.sh 

ID で何かを行うには、それをパイプします。ここで、すべての子タスクを強制終了します。

pgrep aa.sh | xargs pgrep -P ${} | xargs kill

プロセスが実行されている場合にコマンドを実行する場合は、これを実行します

pgrep aa.sh && echo Running
于 2015-01-21T00:18:56.257 に答える
2

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
于 2015-03-23T20:17:34.230 に答える
0

すべてのプロセスを表示するには、ps にオプションを指定します。例は次のとおりです。

ps -A | grep "myshellscript.sh"

詳細については、http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/を確認してください。

Basile Starynkevitch がコメントpgrepで述べたように、別の解決策があります。

于 2013-05-30T04:40:05.440 に答える