我有一个小脚本来启动fluidynth服务器,然后将它连接到我的rasberry上的midi设备(OS是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"
条件外的aconnect -o用于调试。
当我正常执行(./startup_fluid_synth.sh)时它工作正常:https://pastebin.com/kU0wDu3w
我的crontab -e说:
@reboot /home/pi/startup_fluid_synth.sh >> /home/pi/fluid.log
现在当我重新启动pi时,脚本启动了,但是日志清楚地表明应该满足条件,但不是:https://pastebin.com/FnxMKBkF
知道为什么会这样吗?
更新: 错误日志显示:
/home/pi/startup_fluid_synth.sh: 4: /home/pi/startup_fluid_synth.sh: [[: not found
cron有可能以某种方式不知道[[]]命令吗?
已经尝试过,当命令正常执行时,如何导致条件无法满足?
—
Julian
似乎
—
choroba
fluidsynth
命令还没有开始。你也可以检查脚本的错误输出吗?
如果你从第二个pastebin看第119行,你会看到fluidynth开始,我将添加错误输出并将其发布在上面。
—
朱利安
aconnect
(和任何其他外部命令)。