Проблема состоит в том, что эти две строки:
sudo chmod 500 /home/myUser/my_web_app.jar
sudo ln -s /home/myUser/my_web_app.jar /etc/init.d/my_web_app
Проблема № 1: обычные исполняемые файлы JAR не являются исполняемым форматом, который ОС распознает 1 .
Установка бита выполнения для обычного файла JAR не поможет.Ядро ОС не знает, как его запустить.Чтобы запустить обычный JAR, вам нужно выполнить команду java -jar /path/to/the.jar
.При необходимости вы можете создать простой скрипт-обертку для этого.
1 - Существует способ создать специальный «полностью исполняемый» JAR-файл SpringBoot, к которому добавлен сценарий оболочки;см. «Установка приложений Spring Boot» .Это один из способов обойти эту проблему, хотя в документации говорится, что эти специальные JAR-файлы вызывают проблемы у некоторых инструментов.
Проблема №2: Файлы в /etc/init.d
должны быть служебными скриптами.
Они не просто исполняемые файлы для службы.Сценарии, как предполагается, являются сценариями оболочки, которые понимают глаголы, такие как start
, stop
, restart
, reload
и так далее.И (AFAIK) они должны быть закодированы как sh
совместимые сценарии оболочки.Вот статья, которая описывает структуру служебных сценариев:
(но сначала прочитайте проблему №4 !!)
Проблема # 3 : Запуск службы с именем root
может быть угрозой безопасности.
Для запуска службы лучше создать (непривилегированную) учетную запись службы.Это особенно важно, если сервис открыт для сети.(Если злоумышленники могут «взломать» службу по сети и заставить ее делать нежелательные вещи, тот факт, что она работает от имени пользователя root, ставит под угрозу всю систему.)
Проблема № 4: /etc/init.d/
сценарии устарели.
Если вы используете последний выпуск Ubuntu (15.04 или более поздний), эти сценарии /etc/init.d/
являются «устаревшим» способом настройки.Текущая итерация механизма initd
- systemd
.Он использует systemd
файлы файлов модулей, а не служебные скрипты.Следующая статья дает дополнительную информацию:
Служба systemd
включает устаревшие сценарии службы, но они не такие мощные, гибкие и ..сжато ... как файлы модулей.
Задача № 5: Ubuntu 14.04 LTS достиг конца срока службы.
Вам следует обновить систему до 16.04 LTS или предпочтительно до 18.04 LTS.Неразумно использовать операционную систему с истекшим сроком эксплуатации для ваших производственных серверов.
Обратите внимание, что имеется много документации и множество статей в Интернете о старых и старыхновые способы настройки сервисов.(Google твой друг.)