Gunakan service atau systemctl untuk mengontrol daemon openvpn saat boot?

11

Saya sedang mengerjakan sistem berbasis debian dan saya masih belajar tentang systemctl vs layanan , tetapi saya mencoba menggunakan openvpnkonfigurasi saya sebagai use-case untuk bekerja melalui ini.

Dalam pengaturan saya saat ini, saya benar-benar bingung tentang bagaimana openvpnmemulai boot dan bagaimana mengelolanya.

Saat boot, ini adalah openvpnproses yang telah dimulai:

> 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

Saya masih tidak tahu apa yang mengendalikan ini untuk mulai saat boot.

Proc pertama adalah server (yang ingin saya nonaktifkan), dan yang lainnya adalah klien yang ingin saya pertahankan dan terus gunakan.

Pemahaman saya adalah bahwa seseorang dapat menggunakan systemctluntuk mendaftar semua layanan:

> systemctl list-unit-files --type=service | ag 'openvpn'
openvpn.service                               disabled
[email protected]                              disabled

Apa perbedaan antara keduanya? Apakah ini dua layanan yang mengendalikan proses di atas? Jika dinonaktifkan, mengapa masih dijalankan saat boot?

Jika saya mencoba dan menggunakan serviceuntuk mendapatkan status openvpn, saya mendapatkan:

> 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

Yang mendorong saya untuk bertanya:

Jika ada dua entri dalam systemctl untuk openvpn, apa yang disebut kedua saat menggunakan service openvpn_2nd? status?

Untuk jaga-jaga, ada /etc/init.d/openvpnskrip.

Setiap wawasan tentang beberapa pertanyaan di atas akan sangat dihargai.

doremi
sumber
Distro apa yang Anda jalankan?
Seth
DietPi w / Debian GNU / Linux 8 (jessie) Linux 3.14.79+
doremi

Jawaban:

18

OpenVPN bukan tempat terbaik untuk memulai jika seseorang sedang belajar systemd, karena OpenVPN bukan layanan yang sederhana.

OpenVPN adalah layanan templatized di bawah systemd. Unit layanan diberi nama , semua berasal dari file unit layanan tunggal bernama . Jadi, Anda memulai contoh Anda denganopenvpn@config.service[email protected]/etc/openvpn/server.conf

systemctl mulai [email protected]
dan memilikinya mulai otomatis saat bootstrap dengan

systemctl mengaktifkan [email protected]
Jelas, Anda berhenti dan menonaktifkannya dengan perintah analog.

Ini bukan apa yang menjalankan klien OpenVPN Anda. Untuk menemukan unit layanan untuk itu, seseorang dapat menemukan nama unit dari nama grup kontrol, dengan menjalankan

systemd-cgls /

Non-template openvpn.servicedijelaskan dalam komentar di bagian atas file unit layanannya. Ini adalah hal lain yang, sekali lagi, menjadikan ini hal yang lebih kompleks untuk dipelajari sebagai pengalaman pertama pemula dalam systemd.

Bacaan lebih lanjut

JdeBP
sumber