Es gibt einige Druckfehler. Versuchen Sie so etwas
#!/bin/bash pgrepN=$( pgrep deluge | wc -l ) if [ "$pgrepN" -lt "2" ]; then echo "less then 2" # pkill deluge echo here restart deluge # restart only if there were less than 2 fi
Beachten Sie, dass Sie im Shebang (erste Zeile) kein Leerzeichen zwischen #!
den Pfad der Shell und den Pfad der Shell setzen dürfen. Mit dem Testoperator müssen []
Sie Leerzeichen in die Klammern setzen. Dies ist beispielsweise [ OK ]
in [NOT OK]
.
Wenn ich Ihren Zweck richtig verstanden habe, möchten Sie nur dann einen Neustart durchführen, wenn es weniger als zwei Vorkommen gibt, also in der IF-Anweisung.
Update :
#!/bin/bash Time_to_Sleep="5m" # Put here the amount of time DKiller="/tmp/Kill_Deluge_Script.sh" # Put here the deluge killer script Name echo "#!/bin/bash" > $DKiller # Creating script that will kill this one echo "kill $$; sleep 3s; " >> $DKiller # Passing the command to kill this one echo "pkill deluge" >> $DKiller # Now you can kill deluge too echo "echo deluge killed... RIP " >> $DKiller chmod u+x $DKiller # Make the script executable for you while true do pgrepN=$( pgrep deluge | wc -l ) if [ "$pgrepN" -lt "2" ]; then echo "less then 2" # pkill deluge echo here restart deluge # restart only if there were less than 2 fi sleep $Time_to_Sleep done