LINUX.ORG.RU

А в чем глубинный смысл таких .service файлов?

 ,


1

1

/lib/systemd/system/openvpn.service

[Unit]
Description=OpenVPN service
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
WorkingDirectory=/etc/openvpn

[Install]
WantedBy=multi-user.target

Я то сижу пытаюсь понять чего это у меня openvpn сервер не запускается. А у них там /bin/true в качестве бинарника указан

★★★★★

Это специальный systemd-юнит для тех, кто не читает документацию openvpn и его юнитов и не знает, что запускать нужно openvpn-server@<имя_конфига>

BOOBLIK ★★ ()

Там короче хрень такая, что если юнит долго не стартует, то systemd думает, что процесс завершился с ошибкой и убивает тот даже если он еще висит

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

хотя я не обратил внимания, что он вообще ничего не запускает

tz4678 ★★ ()

первая же ссылка на so, говорит мол есть openvpn@.service, если бы не было openvpn.service, то при запуске systemctl start openvpn запускался бы openvpn@.service без specifier

tz4678 ★★ ()

затычка от дураков :)
чтобы прочитал таки документацию openvpn.

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

как то всю жизнь до systemd хватало /etc/init.d/openvpn start

А теперь что-то все усложнили

cvs-255 ★★★★★ ()

А в чем глубинный смысл таких .service файлов?

Ну во-первых, в шаблоне openvpn@.service прописана зависимость PartOf=openvpn.service, поэтому если у тебя запущено несколько экземпляров, то команда systemctl stop openvpn остановит сразу все.

Во-вторых, для openvpn есть генератор /lib/systemd/system-generators/openvpn-generator, который при загрузке системы создаёт симлинки в /run/systemd/generator/openvpn.service.wants. В Debian конкретный список назначается переменной AUTOSTART в /etc/default/openvpn. Если где-нибудь в конфигах не было косяков, то в результате всё складывается так, что systemctl start openvpn поднимает все упомянутые в AUTOSTART конфигурации разом.

В итоге у тебя есть возможность держать несколько конфигураций OpenVPN, есть возможность запускать-останавливать конфигурации по отдельности, и есть возможность запускать-останавливать все конфигурации разом. Вот в этом и заключается глубинный смысл.

i-rinat ★★★★★ ()
Ответ на: комментарий от t184256

Допустим, а с какого перепуга он тогда .service а не .target?

Возможно, вот этот комментарий из /lib/systemd/system/openvpn.service может прояснить причину:

# This service is actually a systemd target,
# but we are using a service since targets cannot be reloaded.
i-rinat ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.