여러 가지 다른 솔루션을 시도했지만 그 중 아무 것도 작동하지 않습니다.
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
언제 시작되는지만 알 수 있다는 점에서 자기중심적인 데몬입니다.가설다른 모든 서비스도 시작되었습니다. 다른 이유도 있을 수 있겠지만 이 정도인 것 같습니다.의심할 가능성이 가장 높다귀하가 제공한 정보를 고려하면.
다음 두 가지 작업을 수행해야 합니다.
sleep
작업을 시작하기 전에 잠시 시간을 내십시오cron
. 이렇게 하면 시스템이 USB 스틱을 마운트하고 아직 준비되지 않은 다른 서비스를 시작할 시간을 갖게 됩니다cron
.스크립트의 오류는 출력으로 설정되어
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에게도 감사드립니다!)