Existem algumas impressões digitais. Tente algo assim
#!/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
Note que no shebang (primeira linha) você não deve colocar um espaço entre #!
e o caminho do shell, com o operador de teste []
você precisa colocar espaços dentro dos colchetes: por exemplo, isso é [ OK ]
this in [NOT OK]
.
Se eu entender corretamente o seu propósito, você só desejará reiniciar se houver menos de duas ocorrências, portanto, dentro da instrução IF.
Atualizar :
#!/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