ฉันมีอินสแตนซ์ Apache ที่ขึ้นต้นด้วยหน่วย systemd ผู้ใช้หยุดและรีสตาร์ทอินสแตนซ์ด้วยตนเอง ตอนนี้ systemctl รายงานบริการว่า "ล้มเหลว" นอกเหนือจากการหยุดและรีสตาร์ท Apache มีวิธีใดที่จะทำให้ systemd รับรู้ได้ว่าบริการกำลังทำงานอยู่หรือไม่
นี่คือสถานะ (ฉันพยายามปกปิดข้อมูลบริษัท ดังนั้นหาก httpd-apache
และ INT-1
ไม่สมเหตุสมผล เป็นเพราะฉันได้ลบส่วนหนึ่งของสตริงอักขระออก)
สถานะ $ systemctl httpd-apache-int-1.service
* httpd-apache.service - เซิร์ฟเวอร์ Apache HTTP สำหรับอินสแตนซ์ INT-1
โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/httpd-apache-int-1.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่วันพุธที่ 2022-05-04 15:56:39 CDT; 2 วันที่ผ่านมา
เอกสาร: ผู้ชาย:httpd(8)
ผู้ชาย:apachectl(8)
PID หลัก: 26914 (รหัส=ออก สถานะ=0/สำเร็จ)
นี่คือไฟล์หน่วยของฉัน
$ systemctl cat httpd-apache-int-1.service
# /usr/lib/systemd/system/httpd-apache-int-1.service
[หน่วย]
คำอธิบาย=เซิร์ฟเวอร์ Apache HTTP สำหรับอินสแตนซ์ INT-1
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[บริการ]
ประเภท = ส้อม
# ExecStart ไม่ใช่ "วิธี systemd" ในการทำสิ่งต่างๆ
#อาจมีปัญหาตามมาเช่นการวิ่งมากขึ้น
# มากกว่าหนึ่ง "systemctl ACTION httpd-apache-int-1"
# ขณะนั้น. แต่ใช้สภาพแวดล้อม (ไฟล์) และ
# การแทนที่ systemd ไม่ได้ทำสิ่งที่ฉันต้องการ
ExecStart=/bin/sh -c '\
ที่มา /etc/sysconfig/httpd.int-1 ; \
ที่มา /opt/ca/webagent/ca_wa_env.sh ; \
แหล่งที่มา /opt/apache/etc/int-1/WebAgent.conf ; \
/usr/sbin/httpd $OPTIONS ; \
ทางออก 0'
ExecReload=/bin/kill -USR1 ${MAINPID}
ExecStop=/bin/kill -WINCH ${MAINPID}
# เราต้องการให้ systemd ให้เวลา httpd เพื่อให้เสร็จสิ้นอย่างงดงาม แต่ก็ยังต้องการ
# it เพื่อฆ่า httpd หลังจาก TimeoutStopSec หากมีข้อผิดพลาดระหว่าง
#หยุดอย่างสง่างาม โดยปกติแล้ว Systemd จะส่งสัญญาณ SIGTERM ทันทีหลังจาก
# ExecStop ซึ่งจะฆ่า httpd เรากำลังส่ง SIGCONT ที่ไร้ประโยชน์มาที่นี่เพื่อมอบให้
# httpd เวลาที่จะเสร็จสิ้น
KillSignal=SIGCONT
PrivateTmp=จริง
[ติดตั้ง]
WantedBy=multi-user.target
นี่คือกระบวนการที่กำลังทำงานอยู่
$ ps -ef | grep [i]nt-1
อาปาเช่ 1030 27237 0 14:30 ? 00:00:01 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
อาปาเช่ 3291 27237 0 พฤษภาคม05 ? 00:00:12 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
อาปาเช่ 9974 27237 0 พฤษภาคม05 ? 00:00:15 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
ราก 27237 1 0 พ.ค.47 ? 00:00:05 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
อาปาเช่ 27239 1 0 พ.ค.47 ? 00:07:00 LLAWP /opt/apache/etc/int-1/WebAgent.conf -APACHE24
อาปาเช่ 27261 27237 0 พฤษภาคม 04 ? 00:00:41 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
อาปาเช่ 27262 27237 0 พฤษภาคม 04 ? 00:00:37 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
ข้อมูลอื่น ๆ ที่อาจเป็นประโยชน์
อาปาเช่
เวอร์ชันเซิร์ฟเวอร์: Apache/2.4.6 (Red Hat Enterprise Linux)
ระบบปฏิบัติการ
Red Hat Enterprise Linux Server รีลีส 7.9 (Maipo)
$ systemctl -- รุ่น
ระบบd 219