백그라운드에서 btmgmt 호출이 작동하지 않습니다.

백그라운드에서 btmgmt 호출이 작동하지 않습니다.

기계에 SSH로 접속하여 실행하면 btmgmt find출력을 생성한다는 의미에서 "작동"합니다.

그러나 다음을 통해 이 명령을 실행하면

  • 크론 작업 또는
  • cron 작업에서 분리한 스크립트 또는
  • 내가 실행하고 SSH 세션에서 분리한 스크립트

출력은 없고 오류 메시지도 생성되지 않습니다.

이유를 아시나요?

답변1

이는 알려진 버그(https://www.spinics.net/lists/linux-bluetooth/msg85222.html) btmgmt대화형 stdin이 없거나 연결이 끊어지면 자동으로 실패합니다. 간단한 해결책은 다음과 같습니다.

yes | btmgmt

답변2

일부 Linux 배포판을 사용한다고 가정할 때 cron 작업이나 스크립트를 사용할 때 출력을 파일로 리디렉션합니까? 기본적으로 cron은 cron 작업을 소유한 사용자에게 출력을 이메일로 보냅니다.

보다https://www.man7.org/linux/man-pages/man8/cron.8.html

Cron은 저장된 모든 crontab을 확인하고 각 작업을 확인하여 현재 1분 내에 실행해야 하는지 확인합니다. 명령이 실행되면 모든 출력이 crontab 소유자(또는 crontab의 MAILTO 환경 변수가 있는 경우 해당 사용자)에게 메일로 전송됩니다. -s 옵션을 사용하여 모든 작업 출력을 syslog로 보낼 수도 있습니다.

또한 백그라운드에서 스크립트를 실행하는 경우 출력을 검사할 수 있도록 표준 출력을 파일로 리디렉션해야 합니다. 예를 들어.

/my/home/script.sh >> output.txt 2>&1- 이렇게 하면 출력 및 오류 메시지가 /my/home 아래의 output.txt 파일로 리디렉션됩니다.

관련 정보