2017-05-30 3 views
1

Hallo Ich versuche ein Skript zu schreiben, um ein anderes Skript von der Befehlszeile aus neu zu starten. Nutzung sollte sein:Skript zum Neustart eines anderen Skripts

Neustart someotherscript.sh

Katze Neustart

#!/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 & 

Ausgabe lautet:

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

Mein restart Skript selbst tötet. Was ist hier falsch? Kannst du mir bitte helfen?

+2

Bessere Nutzung 'pgrep' oder sogar' pkill' –

Antwort

0

Ihr Skript befindet sich in den Suchergebnissen, da der Befehl, mit dem Sie das Skript gestartet haben, den Skriptnamen enthält, den Sie löschen möchten.

können Sie fügen eine if-Anweisung, dies zu beheben ($$ ist die pid des laufenden Skript):

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

Vielen Dank das ist mein Problem behoben .. .. Ich schätze –

Verwandte Themen