Debian Linux – запускать скрипт / приложение при загрузке

У меня есть файл .jar, который я запускаю следующим образом:

java -jar server.jar 4242 

Итак, у меня есть сценарий java-server.sh, чтобы запустить его:

 #!/bin/sh java -jar server.jar 4242 & 

server.jar должен начать работать над загрузкой системы, поэтому я попытался:

  1. Добавление @reboot /home/user/java-server.sh к crontab -e
  2. Добавление bash java-server.sh || выход 1 в rc.local
  3. Добавление java-server.sh в /etc/init.d

Ни одна из них не работает. Если я войду в систему и запустил свой сценарий, я буду работать как часы, пока не выйду из системы. В чем проблема?

Вы должны называть ваш скрипт полным путем, например, положить в /etc/rc.local :

  bash /usr/local/bin/java-server.sh > /tmp/java-server.log 2>&1 

если ваш скрипт находится в /usr/local/bin , конечно … Это также создаст файл журнала для отладки других потенциальных проблем. (Обратите внимание, что в процессе производства вы никогда не должны создавать такие файлы журналов в / tmp по соображениям безопасности, но в / var / log с соответствующим разрешением, rettention и log rotating, но это упрощено для целей ответа)