Видел подобные решения на C# под Windows как автозапуск сервера, не знаю насколько большое комьюнити здесь под Linux, но эта статья сугубо под них.
Установка очень проста
После установки будет доступен демон supervisord со всеми возможностями контроля: status, start, restart, stop
Давайте теперь откроем файл конфигурации /etc/supervisor/supervisord.conf или же можно создать файл /etc/supervisor/conf.d/my_server.conf
И напишем там такую секцию в самом конце
Теперь опишу подробнее что за что отвечает
После редактирования надо перечитать файлы конфигурации
Или перезапустить сервис
Ну и напишем сам SH файл который будет запускаться
В директории /home/wow/server/bin/ создаем файл start_server.sh с содержанием
Так-же у SuperVisor есть удобная web морда
Для того чтоб она заработала достаточно добавить в /etc/supervisor/supervisord.conf
Данная статья не претендует на использование в боевом проекте, она прежде всего служит как ознакомление с одним из решений.
Подробнее про supervisor
Supervisor
Это утилита написана на Python и предназначена для управления процессами ОС. Мы рассмотрим только отслеживание состояния демонов (фоновых сервисов) и их перезапуск в случае необходимости. Утилита предоставляет системный и web интерфейсы для управления сервисами (демонами).Установка очень проста
Bash:
sudo apt-get install supervisor
После установки будет доступен демон supervisord со всеми возможностями контроля: status, start, restart, stop
Давайте теперь откроем файл конфигурации /etc/supervisor/supervisord.conf или же можно создать файл /etc/supervisor/conf.d/my_server.conf
И напишем там такую секцию в самом конце
Код:
[program:my_server]
directory=/home/wow/server/bin/
command=/bin/bash start_server.sh
stdout_logfile=/home/wow/worker.log
autostart=true
autorestart=true
user=wow-user
stopsignal=KILL
numprocs=1
Теперь опишу подробнее что за что отвечает
[program:my_server] | название процесса/воркера, к которому будут относиться все последующие параметры секции |
directory | папка с файлами в которой будет исполняемый файл |
command | команда которая будет выполняться |
stdout_logfile | файл куда будем писать все логи |
autostart | запуск воркера вместе с запуском supervisor |
autorestart | перезапуск воркера, если тот по какой-то причине упал |
user | запуск процесса под определенным пользователем |
stopsignal | сигнал остановки (убийства) процесса. Если не определяется, то используется команда по умолчанию — TERM |
numprocs | количество инстансов заданного воркера (копий процесса) |
После редактирования надо перечитать файлы конфигурации
Bash:
sudo supervisorctl reread
sudo supervisorctl update
Bash:
sudo service supervisor restart
Ну и напишем сам SH файл который будет запускаться
В директории /home/wow/server/bin/ создаем файл start_server.sh с содержанием
Bash:
./worldserver
Так-же у SuperVisor есть удобная web морда
Для того чтоб она заработала достаточно добавить в /etc/supervisor/supervisord.conf
Код:
[inet_http_server]
port=127.0.0.1:9001
username=YOUR_USER ; Данные для HTTP Basic Authentication
password=YOUR_PASS
Данная статья не претендует на использование в боевом проекте, она прежде всего служит как ознакомление с одним из решений.
Подробнее про supervisor