我正在开发一个基于 Debian 的系统,并且仍在学习systemctl 与服务,但我尝试使用我的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
我仍然不知道是什么控制这些在启动时启动。
第一个进程是服务器(我希望禁用它),另一个是我希望保留并继续使用的客户端。
我的理解是可以用来systemctl
列出所有服务:
> systemctl list-unit-files --type=service | ag 'openvpn'
openvpn.service disabled
[email protected] 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
这促使我问:
如果 openvpn 的 systemctl 中有两个条目,那么使用时第二个条目叫什么service openvpn_2nd? status
?
为了以防万一,有一个/etc/init.d/openvpn
脚本。
任何对上述一些问题的见解将不胜感激。
答案1
如果您正在学习 systemd,OpenVPN 并不是最好的起点,因为 OpenVPN 不是一个简单的服务。
OpenVPN 是一个模板化服务在 systemd 下。这服务单位被命名,全部源自一个openvpn@config.service
服务单位档案命名为[email protected]
.所以你正在启动你的/etc/openvpn/server.conf
实例
系统控制启动[电子邮件受保护]并让它在引导程序上自动启动
系统控制启用[电子邮件受保护]显然,您可以使用类似的命令停止并禁用它。
不过,这不是运行 OpenVPN 客户端的程序。要找到该服务单元,可以通过运行以下命令从控制组名称中找到单元名称:
systemd-cgls /
非模板openvpn.service
在其服务单元文件顶部的注释中进行了解释。再次,对于新手第一次接触 systemd 来说,这是一件更复杂的事情。