Я размещаю довольно много серверов для клиентов и для нашего собственного использования. На всех этих серверах работает Debian Stable. Все серверы являются виртуальными серверами. Это на случай, если автоматическое обновление убьет одну из машин: просто замените его снимком с прошлой ночи, и все снова станет приятным.
Теперь на некоторых из этих серверов работают приложения Tomcat. Одно из этих приложений Tomcat требует больше памяти, чем выделено Tomcat по умолчанию. До сих пор я предпочел добавить выделение памяти в /etc/init.d/tomcat7, однако у нас также были серверы, где это было непосредственно в catalina.sh.
После того, как сегодня возникла проблема с остановкой Tomcat, мы обнаружили, что выделенная память внезапно исчезла. Мы подумали о настроенных автоматических обновлениях, и действительно, файлы журнала cron-apt показали, что в конце апреля было обновление tomcat. Таким образом, мы думаем, что это обновление, скорее всего, перезаписало оба файла.
Теперь Tomcat запускается под пользователем tomcat7 (а также под группой tomcat7). Пользователь имеет / usr / share / tomcat7 в качестве дома и не имеет интерактивной оболочки, чтобы лучше разместить выделение памяти).
Где было бы правильное место для экспорта переменной JAVA_OPTS для пользователя tomcat7, чтобы установить память, оставаясь при этом защищенной от обновлений?
Обычно JAVA_OPTS
должен быть в setenv.sh
расположен в коте bin
ты должен найти это в /usr/share/tomcat7/
(CATALINA_HOME).
Если этот файл отсутствует, вы можете создать его (/usr/share/tomcat7/bin/setenv.sh) и установить бит + x.
Просто поместите это в пустой файл: JAVA_OPTS="$JAVA_OPTS <your params>"
Этот файл не будет перезаписан обновлениями.
Примечание: удалить $JAVA_OPTS
если вы хотите полностью перезаписать любое предыдущее значение.