Tôi đang chạy một số phiên bản openvpn trên máy chủ của mình với debian ổn định; cũng như một số khách hàng như một ví dụ máy chủ. Ngay bây giờ, khi một trong những trường hợp này thất bại, systemd dường như giết và khởi động lại toàn bộ nhóm quy trình:
27 tháng 5 12:09:44 tritone systemd [1]: openvpn@client_uk.service: quá trình chính đã thoát, code = exited, status = 1 / FAILURE 27 tháng 5 12:09:44 tritone systemd [1]: Đơn vị openvpn@client_uk.service nhập trạng thái không thành công. 27 tháng 5 12:10:01 tritone systemd [1]: Dừng kết nối OpenVPN với client_rhode ... 27 tháng 5 12:10:01 tritone systemd [1]: Bắt đầu kết nối OpenVPN với client_uk ... 27 tháng 5 12:10:01 tritone systemd [1]: Dừng kết nối OpenVPN với client_ukraine ... 27 tháng 5 12:10:01 tritone systemd [1]: Dừng kết nối OpenVPN với server_udp ... 27 tháng 5 12:10:01 tritone systemd [1]: Dừng dịch vụ OpenVPN ... 27 tháng 5 12:10:01 tritone systemd [1]: Bắt đầu dịch vụ OpenVPN ... 27 tháng 5 12:10:01 tritone systemd [1]: Bắt đầu dịch vụ OpenVPN. ...
Điều này cũng không mong muốn như imho thừa. Khởi động lại dịch vụ thất bại duy nhất sẽ đủ. Đây là cấu hình systemd từ /etc/systemd/system/multi-user.target.wants/openvpn.service
:
[Đơn vị] Mô tả = dịch vụ OpenVPN Sau = mạng.target [Dịch vụ] Loại = oneshot RemainAfterExit = có ExecStart = / bin / đúng ExecReload = / bin / true WorkDirectory = / etc / openvpn [Tải về] WantedBy = multi-user.target
Tôi đã thấy các cấu hình, nơi ExecReload đã được đặt thành kill -HUP $MAINPID
và máy chủ của tôi dường như cũng làm điều này, như trạng thái systemctl nói:
Process: 5893 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
Vì vậy, những gì tôi không hiểu, lệnh kill này được xác định ở đâu, nếu cấu hình systemd ExecReload thực sự nói khác? Ngoài ra, tại sao dịch vụ được khởi động lại, ngay cả khi Type=oneshot
được xác định? Tôi đang nhìn vào tập tin đúng không?
Và lệnh khởi động lại trông như thế nào? Kill sẽ không hoạt động, vì quá trình được cho là đã chết.
Chỉnh sửa: Tôi đã tìm thấy /lib/systemd/system-generators/openvpn-generator
và /lib/systemd/system/openvpn@.service
bây giờ, tuy nhiên, vẫn chưa rõ ràng, khi chúng được chạy hoặc thực thi. Trình tạo dường như không thành công, vì không có liên kết nào thực sự được tạo, có thể là do các hạn chế của selinux. Tuy nhiên, tập tin này dường như được sử dụng cho init. Vì vậy, tôi tự hỏi, tại sao các tập tin giả /etc/systemd/system/multi-user.target.wants/openvpn.service
được tạo ra ở tất cả?