crontab에 의해 실행될 때 배쉬 조건이 충족되지 않습니다


1

fluidsynth 서버를 시작하고 내 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이 어떻게 든 [[]] 명령을 알지 못할 가능성이 있습니까?


에 대한 전체 경로 aconnect(및 기타 외부 명령)를 사용하십시오.
choroba

이미 명령을 정상적으로 실행했을 때 어떻게 조건이 충족되지 않습니까?
율리우스

fluidsynth명령이 시작되지 않은 것 같습니다 . 스크립트의 오류 출력도 확인할 수 있습니까?
choroba

두 번째 pastebin에서 119 행을 보면 fluidsynth가 시작되는 것을 알 수 있습니다. 오류 출력을 추가하고 위에 게시합니다.
Julian

답변:


0

#! / bin / bash를 .sh 파일에 추가하면 문제가 해결되었습니다.

#!/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"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.