Как запустить клиентский сервис OpenVPN в Ubuntu 15.04


21

Я могу запустить OpenVPN и указать его в файле конфигурации, и все работает нормально, например:

sudo openvpn /etc/openvpn/myvpn.conf

но когда я пытаюсь запустить службу с

sudo /etc/init.d/openvpn start

Все, что я получаю, это вывод в системный журнал:

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 НЕ СОДЕРЖИТ мое клиентское приложение openvpn. Поэтому клиент openvpn не работает из командной строки в Ubuntu 15.04?

Ответы:


37

Поэтому клиент openvpn не работает из командной строки в Ubuntu 15.04?

Нет. Причина в том, что вы не читали комментарий вверху этого самого файла модуля, и вы вызываете rcскрипт System 5 напрямую. Не вызывайте rcсценарии System 5 напрямую, особенно в системе, где System 5 rcне используется , например в Ubuntu версии 15.

Вызывать их косвенно с помощью serviceкоманды также неправильно в случае OpenVPN.

OpenVPN - это шаблонный сервис под systemd. Услуги названы . Таким образом, вы должны начать свой экземпляр сopenvpn@config.service/etc/openvpn/myvpn.conf

systemctl start openvpn@myvpn.service

дальнейшее чтение


Хорошо, спасибо за ваш ответ. Я не осознавал, что Ubuntu сейчас следует за сервисом Fedora. Кажется, очень мало документации о запуске / остановке служб 15.04. На самом деле, так сильно, как я Google, я не могу найти вообще. Можно ли как-то запустить его с чем-то вроде "systemctl start openvpn", а не передать имя конфигурации?
user296916

системный новичок здесь ... О каком модульном файле вы говорите? Это freedesktop.org/software/systemd/man/systemd.unit.html ?
Джерри Сойтер

Это тот, кто задает полный путь в вопросе. Он имеет пояснительный комментарий в начале.
JdeBP

4
Просто к сведению, но ни в одном из этих файлов на Ubuntu 15 нет комментариев, которые бы указывали на то, что я делал неправильно. На самом деле документации очень мало, чтобы указать, что systemctl является правильным методом для использования в настоящее время, и на самом деле есть достаточно документации, которая предполагает, что /etc/init.d/xxxx должен просто использовать systemctl за кулисами, и это должно быть прозрачно для пользователей, так что существующие скрипты не ломаются.
user296916

2
У вас есть опечатка: systemctl start openvpn@myvpn.serviceдолжно быть systemctl start openvpn@myvpn.
Брайан Ларсен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.