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