2017-05-30 31 views
1

こんにちは私はコマンドラインから他のスクリプトを再起動するスクリプトを作成しようとしています。 使い方は次のようになります。別のスクリプトを再起動するスクリプト

再起動someotherscript.sh

#!/bin/bash 

for pids in $(ps -ef | grep $1 | grep -v grep | awk '{print $2}') 
do 
kill -9 $pids 
done 
echo test 
sleep 10 
$1 & 

を再起動し、出力は次のようになります。

[email protected]:/scripts# restart pricealert.sh 
Killed 
[email protected]: 

マイ再起動スクリプトは、自分自身を殺しています。 ここで何が間違っていますか?手伝ってくれませんか?

+2

より良い使用 'pgrep'あるいは' pkill' –

答えて

0

スクリプトを開始するために使用したコマンドに、削除しようとしているスクリプト名が含まれているため、検索結果でスクリプトが見つかっています。

あなたは($$は、実行中のスクリプトのPIDである)この問題を解決するためにif文を追加することができます。

if [ "$$" != "$pids" ]; then 
    kill -9 $pids 
fi 
+0

おかげで多く、これは私の問題を修正しました。.. ..私は感謝しています –

関連する問題