Kebijakan restart yang ditambahkan untuk satu tunnel mulai berlaku pada setiap tunnel di mesin. Ini bukan bug systemd; ini perbedaan antara drop-in instance dan drop-in templat. Jalur tempat Anda menulis berkas menentukan berapa banyak layanan yang mewarisinya.

Pilih cakupan sebelum pengaturan. Kedua direktori terlihat hampir sama, dan hanya satu di antaranya yang terbatas pada instance yang Anda maksud.

Gejalanya: satu suntingan, semua tunnel

Drop-in khusus instance berada di bawah direktori yang dinamai menurut instance lengkap, misalnya [email protected]. Drop-in templat berada di bawah [email protected], dengan tanda @ dan tanpa nama instance di antaranya. Yang pertama hanya berlaku untuk office. Yang kedua berlaku untuk setiap layanan yang dibuat dari templat itu.

Bentuk templat tidak menjangkau templat [email protected] yang terpisah, dan tidak menjangkau layanan tak terkait yang memiliki openvpn di namanya.

Pilih direktori yang sesuai dengan cakupan

Kedua direktori berada di bawah /etc/systemd/system/. Menghilangkan komponen system terakhir menghasilkan jalur yang tidak dibaca systemd sebagai penggantian sistem, dan itu cara senyap membuat berkas yang tampak benar tidak melakukan apa pun. Tulis jalur lengkapnya sekali dan gunakan ulang.

Drop-in juga memerlukan tajuk bagian yang benar. Pengaturan layanan berada di bawah [Service]. Berkas berisi pengaturan tetapi tanpa bagian diabaikan atau ditolak, dan unit tetap berperilaku seperti sebelumnya sementara berkas itu duduk di sana tampak berwibawa.

Simpan tujuan dalam nama berkas jika Anda menambahkan lebih dari satu drop-in. Urutan leksikografis menentukan penggabungan, dan nama yang menyebut apa yang dilakukan berkas membuat urutan itu terbaca.

Baca unit gabungan sebelum menulis

Baca unit gabungan sebelum menulis apa pun. systemctl cat [email protected] mencetak unit utama dan setiap drop-in yang berlaku, dalam urutan penggabungan. Bandingkan dengan instance kedua saat Anda mempertimbangkan perubahan templat. Perbandingan itu menunjukkan tepat layanan mana yang akan mewarisi suntingan.

Berkas instance tidak menghapus pengaturan templat. Keduanya digabungkan, jadi nilai templat yang Anda lupakan bisa masih berlaku.

Drop-in bernama lain, pengaturan runtime, dan konfigurasi dari paket juga ikut ambil bagian. Jangan menganggap berkas yang terakhir Anda sunting adalah seluruh unit. Keluaran gabungan itulah unit.

Jauhkan kebijakan unit dari profil

Pisahkan kebijakan unit dan konfigurasi VPN. Direktif profil tidak menjadi sintaks systemd yang sah karena berada di bawah [Service]. Pengaturan restart juga tidak termasuk dalam berkas .ovpn.

Pemisahan itu juga sebabnya kebijakan restart bukan hal yang sama dengan pemulihan peer yang OpenVPN lakukan sendiri. Putuskan perilaku yang Anda inginkan sebelum memilih cakupan.

Terapkan dan verifikasi instance

Setelah perubahan, muat ulang definisi manajer dengan systemctl daemon-reload. Pemuatan ulang itu tidak me-restart tunnel; itu hanya membaca ulang berkas unit. Lalu terapkan tindakan siklus hidup yang Anda maksudkan pada instance yang tepat.

Verifikasi dengan membaca ulang unit yang dimuat dan mengamati perilaku yang Anda ubah. Restart yang membawa pekerjaan aktif layak mendapat gangguan terencana, bukan uji cepat pada tunnel produksi. Catat tujuan dan cakupan penggantian di samping penerapan agar orang berikutnya tahu apakah berkas itu dimaksudkan untuk dibagikan.

Jika kebijakan itu benar-benar dibagikan, pindahkan dengan sengaja ke templat dan periksa instance kedua sebelum menyebutnya selesai.Referensi unit systemd mendokumentasikan prioritas drop-in dan urutan penggabungan.

Artikel terkait