LINUX.ORG.RU

systemd unit для двух исполняемых файлов

 ,


0

3

Дано два исполняемых файла

первый: pegas - сетевой сервер

второй: earthpony - разгребает некоторые файлы от работы pegas

Надо действовать с ними всегда с обоими.

При старте оба стартовать, оба перезапускать.

Оба не форканутые. Но если надо, то можно переделать под форканутые.

Как лучше сделать?

PS: с systemd ни разу дела не имел

★★★★★

Последнее исправление: fornlr (всего исправлений: 1)

Зависимость разгребающего от основного, два отдельных юнита.

ЕМНИП, systemd умеет в перезапуск дерева юнитов по зависимости, пусть intelfx меня поправит, если я не прав.

r3lgar ★★★★★
()
# systemctl cat test1 test2
# /etc/systemd/system/test1.service
[Unit]
Requires=test2.service

[Service]
ExecStart=/usr/bin/sleep 100

# /etc/systemd/system/test2.service
[Unit]
Requires=test1.service

[Service]
ExecStart=/usr/bin/ping localhost
ArcFi
()

Можно указать execstart дважды с разными командами. Выполнение будет последовательное емнип

arcanis ★★★★
()
Ответ на: комментарий от arcanis

Только в Type=oneshot.

ТС, делай два юнита, которые Requires= друг друга, или (что лучше) один таргет, к нему в Requires= два сервиса, а в каждом из них StopWhenUnneeded=yes.

intelfx ★★★★★
()

Один из них зависит от mysql

Пишу значит в [unit]

After=mysqld.service
Required=mysqld.service

При загрузке в логах сервиса бла-бла не могу соединиться к mysql серверу. Потом сам руками этот сервис стартуешь через systemctl start - нормально.

Чего не так?

PS: mysqld.service правильное название, проверил, а то в некоторых дистрибутивах без буквы 'd' наконце

fornlr ★★★★★
() автор топика
Последнее исправление: fornlr (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.