Я устанавливаю Tomcat на сервер Linux и хочу, чтобы он был доступен как услуга. Я нашел два разных способа добиться этого.
Первый - скопировать daemon.sh из $ CATALINA_HOME / bin в /etc/init.d, а другой, который я видел, - это создать простой сценарий инициализации, который класс $ CATALINA_HOME / bin / startup.sh и т. Д. Startup.sh вызывает catalina.sh.
Содержимое daemon.sh и startup.sh очень похоже (по крайней мере, для переменных env и тому подобного). Daemon.sh вызывает jsvc
в конце концов. Catalina.sh вызывает java.
В чем (практическая) разница между использованием двух из них при настройке tomcat как службы?
Я всегда настраивал среду Tomcat с Apache HTTPD перед ней, выступая в качестве прокси-сервера для бэкэнда Tomcat.
Порты ниже 1024 являются привилегированными. По сути, это означает, что если вы запускаете Tomcat напрямую с помощью catalina / startup / shutdown, вам нужно будет запустить его от имени пользователя root, чтобы выполнить привязку к 80 или 443 (SSL).
jsvc
позволит вам запустить Tomcat как непривилегированный пользователь и создать слушателя только как привилегированный пользователь.
Я никогда не развертывал установку, использующую jsvc. Я написал простой сценарий init.d, который запускает Tomcat в «служебной учетной записи», а затем я позволяю mod_proxy (_ajp) разговаривать с ним из Apache. Таким образом, вы можете заставить свой tomcat прослушивать локально на непривилегированном порту и позволить Apache делать то, что он умеет делать.