На этот вопрос уже есть ответ здесь:
Я пытаюсь запустить java-программу внутри сеанса экрана при загрузке, я использую следующий cron, но после перезагрузки screen -ls не показывает активных сеансов экрана.
@reboot /usr/bin/screen -dmS myservice "java -jar /home/david/myservice/MyService-0.0.1-SNAPSHOT.jar"
Есть идеи, что я делаю не так?
РЕДАКТИРОВАТЬ:
Я изменил его на следующее, и теперь экран запускается при загрузке.
@reboot /usr/bin/screen -dmS myservice && "java -jar /home/david/myservice/MyService-0.0.1-SNAPSHOT.jar"
Я добавил &&
перед запуском java-команды, и экран не запускается при загрузке. Но программа все еще не запущена.
но программа не запускается, когда я подключаюсь к экрану. после прикрепления к экрану все, что я вижу, - это знак доллара.
Возможно, ваш дистрибутив, или ваша реализация cron
, вообще не поддерживает @reboot
, или полностью, или для всех пользователей. Это непростая задача.
экран
, возможно, тоже не самый лучший способ запустить сервис, но в любом случае, я бы порекомендовал для этого альтернативу cron
. Это учебное пособие описывает инициализацию сервисов при загрузке в нескольких различных системных конфигурациях, и, возможно, это то, что вам нужно.