web-dev-qa-db-ja.com

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

私は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

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

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

私の理解では、systemctlを使用してすべてのサービスを一覧表示できます。

> systemctl list-unit-files --type=service | ag 'openvpn'
openvpn.service                               disabled
[email protected]                              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を使用するときに2番目に呼び出されるエントリは何ですか?

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

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

11
doremi

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

OpenVPNはsystemdの下のテンプレート化されたサービスです。 サービスユニットopenvpn@config.serviceという名前で、すべて単一のサービスユニットファイル[email protected]という名前です。したがって、/etc/openvpn/server.confインスタンスを

systemctl start [email protected]
systemctl enable [email protected]

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

systemd-cgls /

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

参考文献

18
JdeBP