Используйте service или systemctl для управления демоном openvpn при загрузке?

11

Я работаю над системой на основе Debian и все еще изучаю systemctl vs service , но пытаюсь использовать мою openvpnконфигурацию в качестве сценария использования для проработки этого.

В моей текущей настройке я действительно не понимаю, как openvpnвыглядит запуск при загрузке и как им управлять.

При загрузке это openvpnпроцессы, которые были запущены:

> ps aux | ag 'openvpn'
nobody     952  0.0  0.0   5800  1108 ?        Ss   13:29   0:00 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --config /etc/openvpn/server.conf
root      1537  0.0  0.1   6088  2544 ?        Ss   13:30   0:00 /usr/sbin/openvpn --daemon --auth-nocache --config /root/.vpn_conf/pia.ovpn

Я до сих пор не знаю, что контролирует их, чтобы начать при загрузке.

Первый процесс - это сервер (который я хочу отключить), а другой - клиент, который я хочу сохранить и продолжать использовать.

Насколько я понимаю, можно использовать systemctlдля перечисления всех услуг:

> systemctl list-unit-files --type=service | ag 'openvpn'
openvpn.service                               disabled
openvpn@.service                              disabled

Каковы различия между этими двумя? Эти две службы контролируют процессы, описанные выше? Если они отключены, почему они все еще запускаются при загрузке?

Если я пытаюсь использовать serviceстатус openvpn, я получаю:

> service openvpn status
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; disabled)
   Active: active (exited) since Sun 2017-02-19 13:29:51 PST; 18min ago
  Process: 936 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 936 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/openvpn.service

Feb 19 13:29:51 systemd[1]: Started OpenVPN service

Что побуждает меня спросить:

Если в systemctl есть две записи для openvpn, как вызывается вторая при использовании service openvpn_2nd? status?

На всякий случай есть /etc/init.d/openvpnскрипт.

Любое понимание некоторых из вопросов выше будет принята с благодарностью.

до Ре Ми
источник
В каком дистрибутиве вы работаете?
Сет
DietPi ж / Debian GNU / Linux 8 (Jessie) Linux 3.14.79+
ДоРеМи-

Ответы:

18

OpenVPN - не лучшее место для начала, если вы изучаете systemd, потому что OpenVPN - не простой сервис.

OpenVPN - это шаблонный сервис под systemd. В блоках обслуживания названы , все полученные из одного блока служебного файла с именем . Итак, вы начинаете свой экземпляр сopenvpn@config.serviceopenvpn@.service/etc/openvpn/server.conf

systemctl start openvpn@server.service
и иметь его автозапуск при загрузке с

systemctl включить openvpn@server.service
Очевидно, вы останавливаете и отключаете его с помощью аналогичных команд.

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

systemd-cgls /

Нешаблонном openvpn.serviceобъясняется в комментариях в верхней части его блок обслуживания файла. Это еще что-то, что опять же делает эту вещь более сложной для изучения, как первый опыт systemd новичка.

дальнейшее чтение

JdeBP
источник