如何在Ubuntu 15.04上启动OpenVPN客户端服务


21

我可以启动OpenVPN并将其指向配置文件,然后一切正常,例如:

sudo openvpn /etc/openvpn/myvpn.conf

但是当我尝试启动服务时

sudo /etc/init.d/openvpn start

我所得到的只是syslog中的输出:

Jun 23 21:02:30 pc systemd[1]: Starting OpenVPN service...
Jun 23 21:02:30 pc systemd[1]: Started OpenVPN service.

但这对我来说是骗人的,没有运行openvpn服务:

gk@pc:/etc/openvpn$ ps -aux | grep openvpn
gk   15456  0.0  0.0  13688  2128 pts/0    S+   21:18   0:00 grep --color=auto openvpn

没有其他openvpn进程正在运行。如何启动服务?

我很高兴地注意到/lib/systemd/system/openvpn.service中有:

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecReload=/bin/true
WorkingDirectory=/etc/openvpn

我很确定/ bin / true ISNT是我的openvpn客户端应用程序。这就是为什么在Ubuntu 15.04上的命令行中无法打开openvpn客户端的原因吗?

Answers:


37

这就是为什么在Ubuntu 15.04上的命令行中无法打开openvpn客户端的原因吗?

否。原因是您尚未阅读该单元文件顶部的注释,而是rc直接调用System 5 脚本。 不要rc直接调用System 5 脚本,尤其是在rc未使用System 5的系统上,例如Ubuntu 15。

service在OpenVPN中,通过命令间接调用它们也是错误的。

OpenVPN是systemd下的模板服务。服务被命名为。因此,您应该使用openvpn@config.service/etc/openvpn/myvpn.conf

systemctl启动openvpn@myvpn.service

进一步阅读


好的,谢谢您的回答。我没有意识到Ubuntu现在正在遵循处理服务的方法。似乎很少有关于在15.04上启动/停止服务的文档。实际上,尽管我用Google努力,但我根本找不到任何东西。是否有可能以“ systemctl start openvpn”之类的方式启动它而不传递配置名称?
user296916

这里的systemd新手...您在说什么单位文件?是freedesktop.org/software/systemd/man/systemd.unit.html吗?
杰里·塞特

这是发问者在问题中提供完整路径名的那个。它在开始时有解释性评论。
JdeBP 2015年

4
仅供参考,但在Ubuntu 15上的任何一个文件中都没有注释,以表明我在做什么是错误的。实际上,很少有文档来表明systemctl是现在可以使用的正确方法,实际上,有足够的文档表明/etc/init.d/xxxx 应该在后台使用systemctl,并且应该对用户透明,因此现有脚本不会全部中断。
user296916 2015年

2
您有错别字: systemctl start openvpn@myvpn.service应该是systemctl start openvpn@myvpn
布莱恩·拉森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.