Я хотел бы запустить мое приложение Spring Boot как службу systemd, непосредственно прослушивающую порт 443 (а не за nginx / httpd). Для этого я указываю AmbientCapabilities=CAP_NET_BIND_SERVICE в служебном модуле systemd следующим образом:
[Service]
User=myapp
ExecStart=/usr/lib/myapp.jar
SucessExitStatus=143
AmbientCapabilities=CAP_NET_BIND_SERVICE
Однако кажется, что эта возможность теряется, когда встроенный скрипт запуска запускает Java. В качестве теста я заменил свой собственный однострочный сценарий bash java -jar /usr/lib/myapp.jar, чтобы проверить, не теряется ли возможность при запуске любого сценария bash, но это сработало. Итак, насколько я могу судить, что-то во встроенном скрипте запуска вызывает проблему.
С учетом сказанного, я, скорее всего, откажусь от встроенного сценария запуска в пользу запуска Java непосредственно из служебного модуля systemd, но в случае (1) у других есть такая же проблема или (2) это настоящая ошибка и не только мне что-то не хватает, я хотел хотя бы задать вопрос.
Ваше здоровье!
Вообще говоря, да, но в случае служебного модуля systemd возможность передается дочерним (и внучатым) процессам. Показательный пример: когда я заменил свой собственный сценарий bash, который затем запускал java, он сработал.
попробуйте выполнить ExecStart = java -jar /usr/lib/myapp.jar (точно так же, как вы это делали вручную). Теперь у вас есть ExecStart = / usr / lib / myapp.jar, это что-то другое.
@BartoszBilicki Извините за нечеткое указание, конечно, это работает. И, как я уже сказал, я, вероятно, просто воспользуюсь этим подходом. Меня просто бросило, потому что Документация по Spring Boot для systemd говорит использовать встроенный скрипт запуска.




извините, если мое предположение глупо, но это то, что я вижу: внешние возможности должны быть установлены для исполняемого двоичного файла (я нашел его здесь). Если я правильно понимаю, двоичный файл в этом случае / usr / bin / java или всякий раз, когда установлен java. Так что вам стоит попробовать что-то вроде того. но вы устанавливаете его на
myapp.jar