Потребовалось мне в одном из проектов использовать Apache Tika. Использовать решили в режиме сервера, т.к. задач перед приложением стояло достаточно много. После всех тестов и настроек, все что осталось, это добавить сервер Tika в автозапуск, чтобы он запускался при перезагрузке сервера...
В качестве базовой системы стоит CentOS 7, эта ОС для управления сервисами использует Systemd (полезная шпаргалка с хабра на русском). Ну, что же приступаем к конфигурации.
- создаем файл /etc/systemd/system/tika.service
- в него добавляем следующее:
[Unit] Description=Apache Tika Server Requires=network.target After=network.target [Service] ExecStart=/usr/bin/java -jar /path-to-tika/tika-server-1.13.jar SuccessExitStatus=143 Type=simple [Install] WantedBy=multi-user.target
- теперь уведомляем systemd о внесенных в конфигурацию изменениях
systemctl daemon-reload
- теперь добавляем в автозапуск такой командой
systemctl enable tika.service
- перезагружаемся и проверяем
service status tika
- должны получить, что-то типа:
Redirecting to /bin/systemctl status tika.service tika.service - Apache Tika Server Loaded: loaded (/etc/systemd/system/tika.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2016-10-14 16:25:43 EEST; 1h 34min ago Main PID: 1626 (java) CGroup: /system.slice/tika.service └─1626 /usr/bin/java -jar /path-to-tika/tika-server-1.13.jar
Обратите внимание:
Во время настройки, я столкнулся с тем, что изначально создал файл tika.service в другом месте и в /etc/systemd/system/ создал символическую ссылку на этот файл. В ручном режиме (start/stop/status) сервис работал отлично. Однако, при попытке добавить в автозагрузку (systemctl enable tika.service) systemd показывал ошибку "Failed to execute operation: No such file or directory", с чем это связано, я так и не понял (рядом с моей ссылкой, были ссылки sphinx-а которые работали прекрасно), поэтому отказался от симлинка и создал файл прямо в этой директории. После этого все заработало как и ожидалось.