Tôi có một phiên bản Apache bắt đầu bằng một đơn vị systemd. Một người dùng đã dừng và khởi động lại phiên bản theo cách thủ công. Bây giờ systemctl báo cáo dịch vụ là "không thành công". Ngoài việc dừng và khởi động lại Apache, có cách nào để systemd nhận ra dịch vụ đang chạy không?
Đây là trạng thái. (Tôi đã cố giấu thông tin công ty, nên nếu httpd-Apache
và INT-1
không có nghĩa, đó là vì tôi đã loại bỏ một phần của chuỗi ký tự.)
$ systemctl status httpd-apache-int-1.service
* httpd-apache.service - Máy chủ HTTP Apache cho Phiên bản INT-1
Đã tải: đã tải (/usr/lib/systemd/system/httpd-apache-int-1.service; đã bật; giá trị đặt sẵn của nhà cung cấp: đã tắt)
Hoạt động: không thành công (Kết quả: mã thoát) kể từ Thứ Tư 2022-05-04 15:56:39 CDT; 2 ngày trước
Tài liệu: man:httpd(8)
người đàn ông:apachectl(8)
PID chính: 26914 (mã=đã thoát, trạng thái=0/THÀNH CÔNG)
Đây là tập tin đơn vị của tôi.
$ systemctl mèo httpd-apache-int-1.service
# /usr/lib/systemd/system/httpd-apache-int-1.service
[Đơn vị]
Mô tả=Máy chủ HTTP Apache cho Phiên bản INT-1
Sau=mạng.đích từ xa-fs.đích nss-lookup.đích
Tài liệu=man:httpd(8)
Tài liệu = người đàn ông: apachectl (8)
[Dịch vụ]
Loại = rẽ nhánh
# ExecStart không phải là "cách systemd" để thực hiện mọi việc.
# Có thể có vấn đề với những thứ như chạy nhiều hơn
# hơn một "systemctl ACTION httpd-apache-int-1"
# tại một thời điểm. Nhưng sử dụng Môi trường (Tệp) và
# systemd ghi đè không làm những gì tôi muốn.
ExecStart=/bin/sh -c '\
nguồn /etc/sysconfig/httpd.int-1 ; \
nguồn /opt/ca/webagent/ca_wa_env.sh ; \
nguồn /opt/apache/etc/int-1/WebAgent.conf ; \
/usr/sbin/httpd $ TÙY CHỌN ; \
thoát 0'
ExecReload=/bin/kill -USR1 ${MAINPID}
ExecStop=/bin/kill -WINCH ${MAINPID}
# Chúng tôi muốn systemd cho httpd một chút thời gian để hoàn thành một cách nhẹ nhàng, nhưng vẫn muốn
# nó sẽ tắt httpd sau TimeoutStopSec nếu xảy ra sự cố trong quá trình
# duyên dừng lại. Thông thường, Systemd gửi tín hiệu SIGTERM ngay sau
# ExecStop, sẽ giết httpd. Chúng tôi đang gửi SIGCONT vô dụng ở đây để cung cấp
# httpd thời gian để kết thúc.
KillSignal=SIGCONT
RiêngTmp=true
[Cài đặt]
WantedBy=multi-user.target
Đây là những tiến trình đang chạy.
$ ps -ef | grep [i]nt-1
apache 1030 27237 0 14:30 ? 00:00:01 /usr/sbin/httpd -k start -f /opt/Apache/etc/int-1/httpd.conf
apache 3291 27237 0 tháng 505 ? 00:00:12 /usr/sbin/httpd -k bắt đầu -f /opt/Apache/etc/int-1/httpd.conf
apache 9974 27237 0 tháng 505 ? 00:00:15 /usr/sbin/httpd -k bắt đầu -f /opt/Apache/etc/int-1/httpd.conf
root 27237 1 0 May04 ? 00:00:05 /usr/sbin/httpd -k start -f /opt/Apache/etc/int-1/httpd.conf
apache 27239 1 0 tháng 504 ? 00:07:00 LLAWP /opt/apache/etc/int-1/WebAgent.conf -APACHE24
apache 27261 27237 0 tháng 504 ? 00:00:41 /usr/sbin/httpd -k start -f /opt/Apache/etc/int-1/httpd.conf
apache 27262 27237 0 tháng 504 ? 00:00:37 /usr/sbin/httpd -k start -f /opt/Apache/etc/int-1/httpd.conf
Thông tin khác có thể hữu ích.
apache
Phiên bản máy chủ: Apache/2.4.6 (Red Hat Enterprise Linux)
hệ điều hành
Bản phát hành Red Hat Enterprise Linux Server 7.9 (Maipo)
$ systemctl --version
hệ thống 219