Raspberry Pi 자동 실행 및 cron이 작동하지 않습니다.

Raspberry Pi 자동 실행 및 cron이 작동하지 않습니다.

여러 가지 다른 솔루션을 시도했지만 그 중 아무 것도 작동하지 않습니다.

4GB USB3 포트가 있는 Raspberry Pi 4에 USB 저장 장치를 설치했습니다. 마운트 디렉터리는 입니다 /media/usbstick/.

이 위치에 내 Minecraft 서버가 포함된 폴더가 있습니다. 거기에 쉘 스크립트도 있습니다.

#!/bin/sh

cd /media/usbstick/minecraft/   
/usr/bin/screen -S minecraft /usr/bin/java -jar -Xmx3000M -XX:ParallelGCThreads=4 -XX:+UseParallelOldGC /media/usbstick/minecraft/paperclip.jar

먼저 다음을 입력하여 수동으로 시작하는 경우:

cd /media/usbstick/minecraft/

그런 다음 다음을 입력하여 실행하십시오.

./start.sh

crontab을 설정하려고 합니다.

crontab -e

그리고 그는 그 줄의 마지막에 이렇게 썼습니다.

@reboot /media/usbstick/minecraft/start.sh

그러나 이것은 작동하지 않습니다.

답변1

시스템 서비스를 사용할 수 있는 시기를 추적할 방법이 없기 cron때문에 작업이 시작되지 않을 수 있습니다 . cron언제 시작되는지만 알 수 있다는 점에서 자기중심적인 데몬입니다.가설다른 모든 서비스도 시작되었습니다. 다른 이유도 있을 수 있겠지만 이 정도인 것 같습니다.의심할 가능성이 가장 높다귀하가 제공한 정보를 고려하면.

다음 두 가지 작업을 수행해야 합니다.

  1. sleep작업을 시작하기 전에 잠시 시간을 내십시오 cron. 이렇게 하면 시스템이 USB 스틱을 마운트하고 아직 준비되지 않은 다른 서비스를 시작할 시간을 갖게 됩니다 cron.

  2. 스크립트의 오류는 출력으로 설정되어 srderr터미널에 기록될 수 있습니다. 하지만 cron작업에 쓰기 가능한 터미널이 없으므로 다음을 수행해야 합니다.리디렉션보려면 로그 파일에 저장하세요.

cron위의 두 가지 제안을 달성하기 위해 귀하의 작업을 약간 변경했습니다 .

@reboot (sleep 30; /media/usbstick/minecraft/start.sh) >> /home/pi/cronjoblog.txt 2>&1

원하는 경우 다른 방법(예: 드라이브가 마운트되었는지 확인)을 사용할 수 있지만 이 방법은 쉬우며 sleep문제가 해결되지 않더라도 리디렉션하는 파일에 몇 가지 단서가 있습니다.

답변2

그래서 그것을 고쳤습니다. 기본적으로 화면은 "소유 사용자" 터미널에서만 실행할 수 있으므로 분리 모드에서 실행해야 합니다.

-d(분리 세션 시작) 및 -m($STY 환경 변수 사용 방지)를 사용해야 합니다 .

모두들 감사합니다. 귀하의 답변이 많은 도움이 되었습니다!

(잘못된 영어 표현을 바로잡아준 @ctrl-alt-delor에게도 감사드립니다!)

관련 정보