Sử dụng dịch vụ hoặc systemctl để kiểm soát openvpn daemon khi khởi động?


11

Tôi đang làm việc trên một hệ thống dựa trên debian và vẫn đang tìm hiểu về systemctl vs dịch vụ , nhưng tôi đang cố gắng sử dụng openvpncấu hình của mình như một trường hợp sử dụng để xử lý việc này.

Trong thiết lập hiện tại của tôi, tôi thực sự bối rối về việc openvpndường như bắt đầu khởi động và cách quản lý chúng.

Khi khởi động, đây là các openvpnquy trình đã được bắt đầu:

> 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

Tôi vẫn không biết những gì kiểm soát những thứ này để bắt đầu khởi động.

Proc đầu tiên là máy chủ (mà tôi muốn vô hiệu hóa) và cái còn lại là máy khách mà tôi muốn giữ và tiếp tục sử dụng.

Hiểu biết của tôi là người ta có thể sử dụng systemctlđể liệt kê tất cả các dịch vụ:

> systemctl list-unit-files --type=service | ag 'openvpn'
openvpn.service                               disabled
openvpn@.service                              disabled

Sự khác biệt giữa hai là gì? Đây có phải là hai dịch vụ kiểm soát các quá trình trên? Nếu chúng bị vô hiệu hóa, tại sao chúng vẫn bắt đầu khởi động?

Nếu tôi thử và sử dụng serviceđể có được trạng thái openvpn, tôi nhận được:

> 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

Điều này nhắc tôi hỏi:

Nếu có hai mục trong systemctl cho openvpn, mục thứ hai được gọi khi sử dụng là service openvpn_2nd? statusgì?

Chỉ trong trường hợp, có một /etc/init.d/openvpnkịch bản.

Bất kỳ cái nhìn sâu sắc về một số câu hỏi ở trên sẽ được đánh giá rất cao.


Bạn đang chạy bản phân phối nào?
Seth

DietPi w / Debian GNU / Linux 8 (jessie) Linux 3.14.79+
doremi

Câu trả lời:


18

OpenVPN không phải là nơi tốt nhất để bắt đầu nếu một người đang học systemd, bởi vì OpenVPN không phải là một dịch vụ đơn giản.

OpenVPN là một dịch vụ templatized theo systemd. Các đơn vị dịch vụ được đặt tên , tất cả được lấy từ một tệp đơn vị dịch vụ có tên . Vì vậy, bạn đang bắt đầu ví dụ của bạn vớiopenvpn@config.serviceopenvpn@.service/etc/openvpn/server.conf

systemctl bắt đầu openvpn@server.service
và tự động khởi động trên bootstrap với

systemctl cho phép openvpn@server.service
Rõ ràng, bạn dừng và vô hiệu hóa nó bằng các lệnh tương tự.

Tuy nhiên, đây không phải là những gì đang chạy ứng dụng khách OpenVPN của bạn. Để định vị đơn vị dịch vụ cho điều đó, người ta có thể định vị tên đơn vị từ tên nhóm điều khiển, bằng cách chạy

systemd-cgls /

Không phải mẫu openvpn.serviceđược giải thích trong phần bình luận ở đầu tệp đơn vị dịch vụ của nó. Một điều nữa là, một lần nữa, làm cho điều này trở nên phức tạp hơn khi học như một trải nghiệm đầu tiên của người mới về systemd.

đọc thêm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.