เหตุใดบริการ systemd จึงไม่ได้รับค่าพร็อกซีจากเชลล์ของคุณ
ใส่ค่าพร็อกซีในสภาพแวดล้อมที่บริการ systemd ใช้จริง การ export ในเทอร์มินัลไม่ได้ตั้งค่าโปรเซสที่กำลังทำงานใหม่
ตรวจสอบบริการที่ล้มเหลวแทนการ export ตัวแปรเพิ่มในเทอร์มินัล systemctl cat example.service แสดงยูนิตและไฟล์กำหนดค่าเสริมของบริการ ให้ตรวจหา EnvironmentFile การเขียนทับค่าอื่น หรือค่าพร็อกซีของแอปพลิเคชันเอง อ่านเอาต์พุตที่มีข้อมูลรับรองบนเครื่องของคุณ
หากแอปพลิเคชันใช้ตัวแปรสภาพแวดล้อมของพร็อกซี HTTP ไฟล์กำหนดค่าเสริมของบริการสามารถระบุได้ดังนี้:
[Service]
Environment="HTTP_PROXY=http://203.0.113.10:8080"
Environment="HTTPS_PROXY=http://203.0.113.10:8080"เปลี่ยนปลายทางตัวอย่างในเอกสารและใช้ชื่อตัวแปรที่แอปพลิเคชันรองรับ สำหรับบริการที่ได้รับอนุญาตให้ใช้พร็อกซี HTTP สาธารณะ สามารถหาที่อยู่ที่เป็นตัวเลือกได้ในรายการพร็อกซี HTTP ไคลเอนต์ที่มีการกำหนดค่าของตัวเองอาจไม่ใช้ค่าเหล่านี้ และต้องยืนยันด้วยว่านี่คือบริการระบบที่ต้องการ บริการผู้ใช้มีตัวจัดการและสภาพแวดล้อมต่างกัน การเปลี่ยนยูนิตระบบที่มีชื่อคล้ายกันจึงไม่แก้ปัญหานั้น
หลังแก้ยูนิตหรือไฟล์กำหนดค่าเสริมที่ต้องการ ให้โหลดนิยามใหม่แล้วรีสตาร์ตบริการนั้นเมื่อสามารถหยุดงานชั่วคราวได้:
sudo systemctl daemon-reload
sudo systemctl restart example.servicedaemon-reload เพียงอย่างเดียวไม่เปลี่ยนสภาพแวดล้อมของโปรเซสที่กำลังทำงาน การรีสตาร์ตจะเริ่มโปรเซสใหม่ ส่วนการ export ในเชลล์มีผลเฉพาะเชลล์นั้นและโปรเซสลูกที่เชลล์เริ่มหลังจากนั้น
เมื่อบริการได้รับ URL ที่คาดไว้แล้ว ให้ตรวจตามข้อผิดพลาดจริง บัญชีของบริการอาจไม่มีสิทธิ์เข้าถึงไฟล์ CA เนมสเปซเครือข่ายอาจไปไม่ถึงลิสเซนเนอร์ หรือพร็อกซีอาจปฏิเสธคำขอ นี่คือการตรวจในขั้นต่อไป ไม่ใช่เหตุผลให้แก้โปรไฟล์เชลล์ที่ไม่เกี่ยวข้องต่อไป