บน ร็อคกี้ ลินุกซ์ เครื่องเวอร์ชัน 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 ไม่สามารถเริ่มต้นเมื่อเริ่มต้นภายใต้เงื่อนไขทั้งหมด