LINUX.ORG.RU
ФорумAdmin

Добавление приложения в автозагрузку

 ,


0

1

Добрый день.

Настраиваю UCARP на Ubuntu 18 и столкнулся с проблемой. Приложение отсутствует в списке служб, а запуск вручную не позволяет после этого использовать терминал.

Можно ли как-нибудь запускать UCARP автоматически при старте и при этом иметь возможность что-то делать на сервере?



Последнее исправление: KOTOXJle6 (всего исправлений: 1)
Ответ на: комментарий от Shaman007

Спасибо. Правда я так понял тут больше просто описание работы всей этой системы, но решение нашлось.

Создал свой юнит

nano /etc/systemd/system/ucarp.service
[Unit]
#Описание юнита
Description=Start UCARP as service
# Запускать службу после:
After=syslog.target
After=network.target

[Service]
# Задаем тип сервиса. Man page хорошо описывает доступные опции.
Type=oneshot
# Выполнить эту команду при запуске сервиса.
ExecStart=/usr/sbin/ucarp --interface=ens160 --pass=SuperPa$$w0rd --srcip=10.0.215.26 --vhid=1 --addr=10.0.215.46 --shutdown --preempt --advskew=0 --upscript=/usr/share/ucarp/vip-up --downscript=/usr/share/ucarp/vip-down start
# Выполнить эту команду при остановке сервиса.
ExecStop=/bin/kill -s QUIT $MAINPID
# Выполнить эту команду при перезапуске сервиса.
ExecReload=/bin/kill -s HUP $MAINPID


[Install]
WantedBy=multi-user.target
И добавил в автозагрузку
sudo systemctl enable ucarp
Оформлено не очень красиво и при ручном старте/остановке меня иногда не возвращает в консоль до нажатия ctrl+c, но вообще работает как надо.

Помогла статья с хабры «Systemd: пишем собственные .service и .target»

KOTOXJle6
() автор топика
Ответ на: комментарий от KOTOXJle6

Небольшая поправка. В конце строки ExecStart «start» нужно поменять на -B, а строчки ExecStop поменять на KillMode=control-group, ExecReload на RemainAfterExit=yes

KOTOXJle6
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.