Używać usługi lub systemctl do kontrolowania demona openvpn podczas rozruchu?


11

Pracuję na systemie opartym na Debianie i wciąż uczę się o systemctl vs service , ale próbuję wykorzystać moją openvpnkonfigurację jako przypadek użycia do tego.

W mojej bieżącej konfiguracji jestem naprawdę zdezorientowany, jak openvpnwygląda, jak zaczynam od startu i jak nimi zarządzać.

Podczas uruchamiania są uruchomione openvpnprocesy:

> 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

Nadal nie wiem, co je kontroluje, aby uruchomić przy starcie.

Pierwszy proces to serwer (który chcę wyłączyć), a drugi to klient, który chcę zachować i nadal używać.

Rozumiem, że można użyć systemctldo wyświetlenia listy wszystkich usług:

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

Jakie są różnice między tymi dwoma? Czy te dwie usługi kontrolują powyższe procesy? Jeśli są wyłączone, dlaczego wciąż zaczynają się przy rozruchu?

Jeśli spróbuję serviceuzyskać status openvpn, otrzymam:

> 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

Co powoduje, że pytam:

Jeśli są dwa wpisy w systemctl dla openvpn, to jak drugi jest wywoływany przy użyciu service openvpn_2nd? status?

Na wszelki wypadek istnieje /etc/init.d/openvpnskrypt.

Będziemy wdzięczni za wgląd w niektóre z powyższych pytań.


Jaką dystrybucję prowadzisz?
Seth

DietPi w / Debian GNU / Linux 8 (jessie) Linux 3.14.79+
doremi

Odpowiedzi:


18

OpenVPN nie jest najlepszym miejscem do rozpoczęcia, jeśli uczysz się systemd, ponieważ OpenVPN nie jest prostą usługą.

OpenVPN jest usługą opartą na szablonie w systemie. Jednostki usług są nazywane , wszystkie pochodzą z jednego pliku jednostki usług o nazwie . Więc zaczynasz swoją instancjęopenvpn@config.serviceopenvpn@.service/etc/openvpn/server.conf

systemctl start openvpn@server.service
i automatyczne uruchamianie przy ładowaniu za pomocą

systemctl włącz openvpn@server.service
Oczywiście zatrzymujesz go i wyłączasz za pomocą analogicznych poleceń.

Jednak nie na tym polega klient OpenVPN. Aby zlokalizować jednostkę serwisową, można zlokalizować nazwę jednostki na podstawie nazwy grupy kontrolnej, uruchamiając

systemd-cgls /

Nie-szablon openvpn.servicejest wyjaśniony w komentarzu na górze pliku jednostki usługowej. Jest jeszcze coś, co sprawia, że ​​jest to bardziej złożona rzecz do nauczenia się jako pierwsze doświadczenie systemu.

Dalsza lektura

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.