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?
aconnect
(y cualquier otro comando externo).fluidsynth
comando no ha comenzado. ¿Puedes verificar también la salida de error del script?Respuestas:
Agregar #! / Bin / bash al archivo .sh resolvió el problema.
fuente