ใช้บริการหรือ systemctl เพื่อควบคุม openvpn daemon เมื่อบูต?


11

ฉันกำลังทำงานบนระบบแบบเดเบียนและฉันยังคงเรียนรู้เกี่ยวกับsystemctl vs serviceแต่ฉันกำลังพยายามใช้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

ฉันยังไม่ทราบว่าสิ่งใดที่ควบคุมสิ่งเหล่านี้เพื่อเริ่มการบูท

proc แรกคือเซิร์ฟเวอร์ (ซึ่งฉันต้องการปิดใช้งาน) และอีกอันคือไคลเอนต์ที่ฉันต้องการเก็บและใช้ต่อไป

ความเข้าใจของฉันคือหนึ่งสามารถใช้systemctlเพื่อแสดงรายการบริการทั้งหมด:

> systemctl list-unit-files --type=service | ag 'openvpn'
openvpn.service                               disabled
openvpn@.service                              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

ซึ่งแจ้งให้ฉันถาม:

หากมีสองรายการใน systemctl สำหรับ openvpn รายการที่สองเรียกว่าservice openvpn_2nd? statusอะไรเมื่อใช้

ในกรณีที่มี/etc/init.d/openvpnสคริปต์

ความเข้าใจอย่างถ่องแท้ของคำถามข้างต้นจะได้รับการชื่นชมอย่างมาก


คุณกำลังวิ่ง distro อะไร
เซท

DietPi w / Debian GNU / Linux 8 (เจสซี) Linux 3.14.79+
doremi

คำตอบ:


18

OpenVPN ไม่ใช่สถานที่ที่ดีที่สุดในการเริ่มต้นหากมีการเรียนรู้ systemd เนื่องจาก OpenVPN ไม่ใช่บริการที่ง่าย

OpenVPN เป็นบริการชั่วคราวภายใต้ systemd หน่วยบริการที่มีชื่อทั้งหมดมาจากเดียวหน่วยบริการไฟล์ชื่อ ดังนั้นคุณจึงเริ่มต้นอินสแตนซ์ของคุณด้วยopenvpn@config.serviceopenvpn@.service/etc/openvpn/server.conf

systemctl start openvpn@server.service
และให้มันเริ่มโดยอัตโนมัติใน bootstrap ด้วย

systemctl เปิดใช้งาน openvpn@server.service
เห็นได้ชัดว่าคุณหยุดและปิดการใช้งานด้วยคำสั่งแบบอะนาล็อก

นี่ไม่ใช่สิ่งที่เรียกใช้ไคลเอนต์ OpenVPN ของคุณ ในการค้นหาหน่วยบริการสำหรับสิ่งนั้นคุณสามารถค้นหาชื่อหน่วยจากชื่อกลุ่มควบคุมโดยเรียกใช้

systemd-cgls /

ไม่มีการopenvpn.serviceอธิบายเท็มเพลตในคำอธิบายที่ด้านบนของไฟล์หน่วยบริการ มันเป็นอย่างอื่นที่ทำให้สิ่งนี้ซับซ้อนมากขึ้นในการเรียนรู้เป็นประสบการณ์ครั้งแรกของ systemd

อ่านเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.