我想将我的Spring Boot应用程序作为直接侦听端口443的systemd服务运行(不在nginx / httpd后面)。为此,我在systemd服务单元中指定AmbientCapabilities=CAP_NET_BIND_SERVICE
,如下所示:
[Service]
User=myapp
ExecStart=/usr/lib/myapp.jar
SucessExitStatus=143
AmbientCapabilities=CAP_NET_BIND_SERVICE
但是,当嵌入式启动脚本运行Java时,该功能似乎丢失了。作为测试,我替换了我自己的单行bash脚本java -jar /usr/lib/myapp.jar
,以查看在运行任何bash脚本时是否丢失了功能,但这有效。因此,据我所知,嵌入式启动脚本中的某些内容导致了问题。
话虽如此,我很可能会放弃嵌入式启动脚本,而不是直接从systemd服务单元启动Java,但是如果(1)其他人有相同的问题或者(2)这是一个实际的错误,而不仅仅是我错过了一些我想要至少提出问题的东西。
干杯!