Делаем демон приложения в CentOS

В CentOS, в отличии от Ubuntu, по умолчанию нет Start-stop-daemon для запуска своих процессов в виде демонов. При его наличии запуск приложения в виде демона решается простой командой (главное чтобы скрипт был исполняемым :)).

start-stop-daemon -Sbvx /home/redkin_p/bin/test.rb

Для того чтобы сделать это в CentOS есть такие варианты:

1) собрать start-stop-daemon для CentOS. Как по мне очень плохое решение (но, возможно, в 2011 единственное) – требует компилятора, компиляции и прочих штук очень долгих и несущих существенные изменений в систему.

2) Сделать сервис в system.d. Прекрасное решение. Немного сложнее start-stop-daemon, но лучше т.к. позволяет стандартно добавить сервис в автозагрузку, следить по аналогии с другими сервисами за работоспособностью, стандартно перезагружать и прочее.

https://scottlinux.com/2014/12/08/how-to-create-a-systemd-service-in-linux-centos-7/ 
https://unix.stackexchange.com/questions/236084/how-do-i-create-a-service-for-a-shell-script-so-i-can-start-and-stop-it-like-a-d

Пошагово

1) Создаем файл с сервисом, называем как хотим, на конце должно быть “service”

$ cat /etc/systemd/system/test_service.service 
[Unit] 
Description=test_service.rb

[Service] 
Type=simple 
ExecStart=/usr/bin/test_service.rb

[Install] 
WantedBy=multi-user.target

2) Перезагружаем службу демонов

sudo systemctl daemon-reload

3) Стартуем наш сервис

sudo systemctl start test_service

4) Проверяем статус. Тут так же видим последние сообщения от нашей программы/скрипта.

sudo systemctl status test_service

5) Добавляем в автозагрузку

sudo systemctl enable test_service

Enjoy 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *