บน ร็อคกี้ ลินุกซ์ เครื่องเวอร์ชัน 8.5 (ดาวน์สตรีม Red Hat Enterprise Linux ที่เข้ากันได้กับบั๊กสำหรับบั๊ก) ฉันได้กำหนดค่าการตั้งค่า Postfix + Dovecot หลังจากแก้ไขข้อผิดพลาดในการกำหนดค่าทั้งหมดแล้ว ฉันก็มาถึงจุดที่บริการทั้งสองจะเปิดเป็นอย่างน้อย
systemctl เปิดใช้งาน dovecot.service
systemctl เปิดใช้งาน postfix.service
หลังจากรีสตาร์ทเครื่อง ฉันเห็น Dovecot เปิดตัวอย่างถูกต้องเมื่อสอบถามโดยใช้ dovecot สถานะ systemctl
. ในทางกลับกัน Postfix ไม่สามารถเริ่มต้นได้ การรายงาน:
[root@mail ~]# โปรแกรมแก้ไขสถานะ systemctl
â postfix.service - ตัวแทนการขนส่งจดหมายของ Postfix
โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/postfix.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่ ...; 12 นาทีที่แล้ว
กระบวนการ: 1419 ExecStart=/usr/sbin/postfix start (รหัส=ออก, สถานะ=1/ล้มเหลว)
กระบวนการ: 1396 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
กระบวนการ: 1364 ExecStartPre=/usr/libexec/postfix/aliasdb (รหัส=ออก, สถานะ=0/สำเร็จ)
systemd[1]: กำลังเริ่มต้น Postfix Mail Transport Agent...
postfix/postfix-script[1506]: ร้ายแรง: ระบบเมล Postfix กำลังทำงานอยู่
systemd[1]: postfix.service: ออกจากกระบวนการควบคุมแล้ว, code=exited status=1
systemd[1]: postfix.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'
systemd[1]: ไม่สามารถเริ่ม Postfix Mail Transport Agent
ตรวจสอบอย่างรวดเร็วโดยใช้ สถานะการแก้ไขภายหลัง
แสดงว่าไม่ได้วิ่งจริงๆ น่าแปลกที่แม้ว่า เริ่มต้น postfix
จากนั้นเริ่มบริการโดยไม่มีปัญหาใด ๆ กำลังสอบถาม สถานะการแก้ไขภายหลัง
จากนั้นรายงานว่า Postfix ทำงานอย่างมีความสุขด้วย PID ใหม่ กำลังสอบถาม การแก้ไขสถานะ systemctl
อีกครั้งหลังจากนั้นก็แสดงรายงานข้อผิดพลาดที่ไม่เปลี่ยนแปลงจากครั้งก่อน
ข้อผิดพลาดที่รายงานไม่สมเหตุสมผลอย่างไรก็ตาม ฉันสามารถ systemctl ปิดใช้งาน postfix
รีสตาร์ทเครื่อง ตรวจสอบว่า Postfix ไม่ได้ใช้งานทั้งสองอย่างอย่างแท้จริง การแก้ไขสถานะ systemctl
และ สถานะการแก้ไขภายหลัง
ให้ลองเปิดใช้งานโดยใช้ systemctl เริ่ม postfix
และได้รับข้อผิดพลาดเดียวกัน
นอกจากนี้ หากฉันปล่อยให้บริการ Postfix ปิดใช้งานใน systemd ให้รีบูตเครื่องและเริ่มด้วยเท่านั้น เริ่มต้น postfix
, บริการเริ่มขึ้นแล้ว แต่ การแก้ไขสถานะ systemctl
รายงานว่าโหลดแล้ว ไม่ทำงาน...
[root@mail ~]# postfix เริ่มต้น
postfix/postfix-script: เริ่มต้นระบบเมล Postfix
[root@mail ~]# สถานะการแก้ไขภายหลัง
postfix/postfix-script: ระบบเมล Postfix กำลังทำงาน: PID: 2169
[root@mail ~]# โปรแกรมแก้ไขสถานะ systemctl
â postfix.service - ตัวแทนการขนส่งจดหมายของ Postfix
โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/postfix.service; ปิดใช้งาน; ค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งาน: ไม่ใช้งาน (ตาย)
[รูท@เมล~]#
เหตุใด Postfix บน RHEL จึงลงทะเบียนเป็นบริการเมื่อปฏิเสธที่จะทำงานดังกล่าวอย่างเด็ดขาด แล้วอะไรคือวิธีที่เหมาะสมเพื่อให้แน่ใจว่า Postfix เริ่มต้นเมื่อบู๊ตเครื่อง
บันทึก: ฉันเหนื่อย chkconfig postfix เปิดอยู่
อย่างที่ฉันพบว่ามันแนะนำโดยคนออนไลน์ นั่นเป็นเพียงการส่งต่อคำขอไปที่ systemctl เปิดใช้งาน postfix.service
ซึ่งนำฉันกลับไปสู่จุดเริ่มต้น
... ฉันต้องแฮ็คมันจริง ๆ ในการใช้งานไหม /etc/rc.local
เมื่อเนื้อหาของไฟล์บอกว่ามีไว้เพื่อจุดประสงค์ด้านความเข้ากันได้เท่านั้น ไม่ควรใช้อีกต่อไป และฉันควรพิจารณาทำงานกับบริการ systemd หรือไม่
อัปเดต 1: ฉันไปกับสิ่งที่ดูเหมือนจะเป็นวิธีแก้ปัญหาที่สมเหตุสมผลในขณะนี้ - เริ่ม postfix โดยใช้ เริ่มต้น postfix
สั่งเข้ามา /etc/rc.local
. หลังจากรีบูต Postfix ยังคงไม่ทำงาน ตรวจสอบสถานะของบริการ rc-local โดยใช้ สถานะ systemctl rc-local
บริการล้มเหลวในการเริ่มต้น เหตุผลในบันทึกตรงกับเหตุผลที่ระบุไว้ในบันทึกบริการ Postfix หลังจากที่ฉันเปิดใช้งานผ่าน systemctl
- "ร้ายแรง: ระบบเมล Postfix กำลังทำงานอยู่แล้ว"Postfix ไม่สามารถเริ่มต้นเมื่อเริ่มต้นภายใต้เงื่อนไขทั้งหมด