使用 service 或 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 是伺服器(我希望禁用它),另一個是我希望保留並繼續使用的客戶端。
我的理解是可以
systemctl
用來列出所有服務:> systemctl list-unit-files --type=service | ag 'openvpn' openvpn.service disabled openvpn@.service disabled
這兩者有什麼區別?這兩個服務是否控制上述過程?如果它們被禁用,為什麼它們仍然在啟動時啟動?
如果我嘗試使用
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
這促使我問:
如果 systemctl 中有兩個用於 openvpn 的條目,那麼在使用時呼叫的第二個是什麼
service openvpn_2nd? status
?以防萬一,有一個
/etc/init.d/openvpn
腳本。對上述某些問題的任何見解將不勝感激。
如果一個人正在學習 systemd,OpenVPN 並不是最好的起點,因為 OpenVPN 不是一項簡單的服務。
OpenVPN 是systemd 下的模板化服務。**服務單元被命名,所有這些都來自一個名為. 所以你開始你的實例
openvpn@*config*.service``openvpn@.service``/etc/openvpn/server.conf
systemctl start openvpn@server.service
並讓它在引導程序上自動啟動
systemctl 啟用 openvpn@server.service
顯然,您可以使用類似的命令停止並禁用它。
不過,這不是執行您的 OpenVPN 客戶端的內容。要為此找到服務單元,可以通過執行從控制組名稱中找到單元名稱
systemd-cgls /
非模板
openvpn.service
在其服務單元文件頂部的註釋中進行了解釋。作為新手第一次體驗 systemd,這又是另外一件事,它使學習變得更加複雜。進一步閱讀