进一步阅读

进一步阅读

我正在开发一个基于 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 来说,这是一件更复杂的事情。

进一步阅读

相关内容