La condición de Bash no se cumple cuando crontab la ejecuta


1

Tengo un pequeño script para iniciar un servidor fluidsynth y luego conectarlo a mi dispositivo midi en mi rasberry (el sistema operativo es raspbian stretch lite).

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"

La conexión -o fuera de la condición es para la depuración.

Cuando ejecuté normalmente (./startup_fluid_synth.sh) funciona bien: https://pastebin.com/kU0wDu3w

Mi crontab -e dice:

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

Ahora, cuando reinicio el pi, los scripts se inician, pero el registro muestra claramente que la condición debe cumplirse, pero no lo es: https://pastebin.com/FnxMKBkF

¿Alguna idea de por qué esto podría ser?

Actualización: el registro de errores muestra:

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

¿Es posible que cron no conozca el comando [[]] de alguna manera?


Utilice la ruta completa a aconnect(y cualquier otro comando externo).
— choroba

Ya probé eso, ¿cómo resultaría eso en una condición que no se cumple, cuando el comando se ejecuta claramente normalmente?
— Julian

Parece que el fluidsynthcomando no ha comenzado. ¿Puedes verificar también la salida de error del script?
— choroba

Si observa la línea 119 de la segunda pastebin verá que comienza el sintetizador de fluidos, agregaré la salida de error y la publicaré arriba.
— Julian

Respuestas:


0

Agregar #! / Bin / bash al archivo .sh resolvió el 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"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.