私は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
スクリプトがあります。
上記の質問のいくつかへの洞察は、大歓迎です。
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の初心者の最初の経験として学ぶために、これをさらに複雑なものにするものです。