Я упаковал файл WAR и соответствующий ему файл конфигурации как RPM. Мой файл SPEC проверяет, работает ли JBoss. Если это так, установка завершается с сообщением об ошибке, требующим остановки JBoss перед установкой.
В общем случае не стоит убивать процессы или принудительно перезапускать их через RPM. Ответственный за установку должен иметь отдельную процедуру для этого.
Другие соображения:
1. Есть ли в вашей организации другие установки на том же сервере?
Если это так, вы можете стандартизировать путь, по которому будут проходить все установки на сервере. (Например, / usr / local / bin / myorg /)
Также может быть полезно иметь пользователя и группу * nix, для которых атрибуты файлов устанавливаются для всех установок на сервере.
2. Вы хотите переместить RPM?
Есть ли вероятность, что вы захотите изменить путь по умолчанию для вашей установки? Если это так, поможет перемещаемый RPM.
Существуют условия, при которых перемещаемый RPM может не работать, поэтому ознакомьтесь с , чтобы рассмотреть на www.rpm.org .
3. Хотите создать резервную копию существующего развертывания при запуске RPM?
Если это так, вам нужно написать этот код в файле SPEC.
Вот мой полный файл SPEC:
Summary: Summary for my Java project
Name: Name for my Java project
Version: 2.1.2
Release: 5
Requires: jboss >= 5.1
BuildArch: noarch
Group: Internet / Applications
Prefix: /usr/local/bin
License: (C) Copyright my organization
Vendor: my organization
%description
Description for my Java project
%prep
# Check if the WAR file has been created
%install
# Copy war file to buildroot's Jboss deployment directory
# Copy config file to buildroot's Jboss config directory
%files
# Set file permissions and ownership
%pre
# Check if JBoss deployment path exists on the web server.
# If not, exit with an error.
# Check if JBoss config file path exists on the web server.
# If not, exit with an error.
# Check if custom user 'myuser' exists. If not, exit with an error.
# Check if custom group 'mygroup' exists. If not, exit with an error
# Check if JBOSS is running. If yes, exit with an error.
# Take backup of existing deployment, if needed.
%post
# Perform post-installation steps, if needed.
echo "Installation complete."