起動時にサービスまたはsystemctlを使用してopenvpnデーモンを制御しますか?


11

私はdebianベースのシステムで作業していますが、まだsystemctlと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

起動時にこれらをどのように制御しているのか、まだわかりません。

最初のprocはサーバー(無効にしたい)で、もう1つはクライアントを維持して引き続き使用したいクライアントです。

私の理解は、systemctlすべてのサービスをリストするために使用できることです:

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

これら2つの違いは何ですか?これらは上記のプロセスを制御する2つのサービスですか?無効になっているのに、なぜまだ起動しているのですか?

を使用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

これは私に尋ねるように促します:

openvpnのためsystemctlで2つのエントリがある場合は、使用するときに呼び出されるもう一つは何ですかservice openvpn_2nd? status

念のため、/etc/init.d/openvpnスクリプトがあります。

上記の質問のいくつかへの洞察は大歓迎です。


どのディストリビューションを実行していますか?
セス

/ DebianのGNU / Linuxの8(ジェシー)は、Linux 3.14.79+ W DietPi
ドレミ

回答:


18

OpenVPNは単純なサービスではないため、systemdを学習している場合、OpenVPNを開始するのに最適な場所ではありません。

OpenVPNはsystemdの下でテンプレート化されたサービスです。サービスユニットは命名されているすべての単一由来、サービスユニットファイルの名前。だからあなたはあなたのインスタンスをopenvpn@config.serviceopenvpn@.service/etc/openvpn/server.conf

systemctl start openvpn@server.service
そしてそれをブートストラップで自動開始させる

systemctl enable openvpn@server.service
明らかに、類似のコマンドで停止して無効にします。

ただし、これはOpenVPNクライアントを実行しているものではありません。そのためのサービスユニットを見つけるには、次のコマンドを実行して、コントロールグループ名からユニット名を見つけることができます。

systemd-cgls /

非テンプレートopenvpn.serviceについては、サービスユニットファイルの上部にある解説で説明されています。これもまた、初心者にとって初めてのsystemdの経験として学ぶために、これをより複雑なものにするものです。

参考文献

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.