Рейтинг:0

Не удается заставить cron открыть файл Jar

флаг ar

У меня сервер майнкрафт на убунту 20.04. У меня есть скрипт для его выполнения, и он отлично работает. Однако я не могу заставить его работать @reboot с помощью cron, потому что он не может найти файл jar. Из того, что я исследовал, кажется, что cron не работает с моим пользователем (хотя я не использую sudo). Каковы мои варианты?

Это мой crontab -e:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

00 01 * * * /home/eggzaile/minecraft/backup.sh 2>>&1 

@reboot sleep 45 && /usr/bin/screen -dmS minecraft sh -c '/home/eggzaile/minecraft/start.sh; выполнить bash' 2>>&1

после перезагрузки и запуска cron, когда я присоединяюсь к этому окну ... все, что я вижу, это ошибка о том, что файл jar не найден.

это сам скрипт:

    #!/бин/ш
пока правда
делать
java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX :G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -Xio=:2SurvivorRat PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-1.16.5-778.jar nogui
спать 5
сделано

Я где-то писал, что использование полного пути в скрипте должно работать, но это его ломает, я пробовал. я использовал (java -jar /path/to/server.jar и все аргументы здесь), но, видимо, мне не следует менять порядок.

Какие-нибудь советы?

Michael Hampton avatar
флаг cz
Как именно вы выполняете скрипт, который работает?
eggzaile avatar
флаг ar
@MichaelHampton, просто выполнив «sh start.sh», он работает. Однако я всегда сначала открываю экран, чтобы он работал в фоновом режиме «screen -S minecraft».
Рейтинг:0
флаг cz

Ваш сценарий bash не изменился в каталоге, содержащем файлы jar. Вот почему ваш скрипт bash не работает. Но вы изменили каталог, когда запускали его вручную.

Отредактируйте свой скрипт bash, чтобы перейти в нужный каталог перед вызовом java.

eggzaile avatar
флаг ar
Спасибо за помощь! я изменил свой скрипт: cd /home/eggzaile/minecraft && java однако сейчас ничего не происходит, он не запускается при перезагрузке :s
eggzaile avatar
флаг ar
Просто для ясности, сидя в домашнем каталоге (а не там, где скрипт), выполняя строку cronjob, работает: /usr/bin/screen -dmS minecraft sh -c '/home/eggzaile/minecraft/start.sh; исполнительный удар Хотя при перезагрузке не работает
eggzaile avatar
флаг ar
Кроме того, я не могу понять, почему ничего не делается через журналы: 26 июня 09:56:06 homelabs CRON[860]: (eggzaile) CMD (sleep 60 && /usr/bin/screen -dmS minecraft sh -c '/home/eggzaile/minecraft/start.sh; exec bash' 2> >&1) 26 июня 09:56:06 homelabs CRON[775]: (CRON) информация (MTA не установлен, выходные данные отбрасываются)
eggzaile avatar
флаг ar
Ничего себе, работает!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.