Condição de hash não atendida quando executada por crontab

1

Eu tenho um pequeno script para iniciar um servidor fluidsynth e, em seguida, conectá-lo ao meu dispositivo midi no meu rasberry (o SO é um trecho raspbian light).

echo  "Starting"
fluidsynth -is -a alsa --gain 3 /usr/share/sounds/sf2/Nice-Keys-B-Plus-JN1.4.sf2 &
echo "Fluidsynth started"
while true; do aconnect -o; if [[ $(aconnect -o ) = *FLUID* ]]; then break; fi; sleep 2; done
aconnect 20:0 128:0
echo "Connected"

O aconnect -o fora da condição é para depuração.

Quando eu executo normalmente (./startup_fluid_synth.sh) ele funciona bem: link

Meu crontab -e diz:

@reboot /home/pi/startup_fluid_synth.sh >> /home/pi/fluid.log

Agora, quando eu reinicio o pi, os scripts são iniciados, mas o log mostra claramente que a condição deve ser atendida, mas não é: link

Alguma idéia de por que isso poderia ser?

Atualização: O log de erros mostra:

/home/pi/startup_fluid_synth.sh: 4: /home/pi/startup_fluid_synth.sh: [[: not found

É possível que o cron não saiba o comando [[]] de alguma forma?

    
por Julian 02.02.2018 / 13:04

1 resposta

0

Adicionando #! / bin / bash ao arquivo .sh resolveu o problema.

#!/bin/bash
echo  "Starting"
/usr/bin/fluidsynth -is -a alsa --gain 3 /usr/share/sounds/sf2/Nice-Keys-B-Plus-JN1.4.sf2 &
echo "Fluidsynth started"
while true; do /usr/bin/aconnect -o; if [[ $(/usr/bin/aconnect -o ) = *FLUID* ]]; then break; fi; sleep 2; done
/usr/bin/aconnect 20:0 128:0
echo "Connected"
    
por 02.02.2018 / 13:53