Memulai Apache sebagai layanan berhenti dengan SIGWINCH


12

Saat menjalankan service apache startsaya melihat dalam file log entri ini:

[mpm_event:notice] [pid 1906:tid XXX] AH00489: Apache/2.4.23 (Unix)
                         OpenSSL/1.0.2g PHP/7.0.9 configured -- resuming normal operations
[core:notice] [pid 1906:tid XXX] AH00094: Command line: '/usr/sbin/httpd'
[mpm_event:notice] [pid 1906:tid XXX] AH00492: caught SIGWINCH, shutting down gracefully

dan layanan apachetidak dimulai? Saya dapat menemukan di internet apa SIGWINCHartinya [ Window size change] tetapi itu tidak benar-benar membantu saya dalam kasus ini.

File /etc/systemd/system/apache.service:

[Unit]
Description=The Apache Webserver [FaF Compiled]
After=network.target nss-lookup.target time-sync.target
Before=getty@tty1.service plymouth-quit.service xdm.service

[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/sbin/httpd -k start
ExecReload=/usr/sbin/httpd -k graceful
ExecStop=/usr/sbin/httpd -k graceful-stop
KillMode=mixed

[Install]
WantedBy=multi-user.target
Alias=httpd.service apache.service

Berjalan di SLES 12 SP1. Saya telah menyusun Apache sendiri. Memulai dengan apachectl -k startbekerja dengan sempurna dan saya dapat mengakses dan menjalankan kode PHP.

Pertanyaan saya: Apa yang saya lakukan salah bahwa apachelayanan tidak dimulai. Saya telah mengaktifkannya dengan systemctl enable apache. Ini adalah hasilnya:

ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/httpd.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/apache.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/multi-user.target.wants/apache2.service'

Bagaimana bisa SIGWINCHfatal? Tindakan default adalah membuang sinyal.
mulai

Jawaban:


2

systemdmemerintahkan Apache untuk berhenti graceful-stop, yang menghasilkan SIGWINCHsinyal, dan karenanya log caught SIGWINCH, shutting down gracefully. ( SIGWINCHsinyal (ab) digunakan oleh Apache)

IMO, ada kemungkinan kesalahan lain, termasuk kesalahan konfigurasi, membuatnya berhenti, dan Anda melihat gejala terkait yang merupakan perilaku normal.

Saya akan merekomendasikan membaca log kesalahan Apache Anda, biasanya secara default di SLES di bawah direktori /var/log/apache2.


1

Saya menemukan masalah serupa yang dilaporkan pada RedHat . Ditutup dengan status "NOTABUG". Akhirnya diakui sebagai konfigurasi yang salah.

img # 1 1


img # 2 2


img # 3 3


MEMPERBARUI

Saya menemukan satu lagi masalah serupa yang dilaporkan pada serverfault . Dan satu lagi di jawabannya, di gambar di bawah ini.

img 1/1masukkan deskripsi gambar di sini


-DFOREGROUNDtidak membantu dalam kasus saya. Apache mulai tetapi tidak kembali ke servicedan karena itu servicemengeluh denganapache2.service start operation timed out. Terminating.
Peter VARGA

Apakah Anda membaca utas di tautan?

1
Aku menyerah. Saya mengerti situasinya tetapi saya tidak tahu bagaimana cara memperbaikinya. Saya menemukan ketika saya menghapus ExecReload=dari /usr/lib/systemd/system/apache2.servicesaat SIGWINCHitu tidak dikirim tetapi kemudian Apache tidak memulai - tidak ada pesan kesalahan dalam log, tidak ada. Segera berhenti ketika sudah dimulai. Saya menerapkan hack yang sekarang saya jalankan apachectl -k startsebagai tugas cron ketika sistem dimulai. Saya dapat memulai kembali Apache dengan apachectl -k restart. Saya akan mencobanya nanti; mungkin saya mendapatkan beberapa ide baru.
Peter VARGA

Saya menemukan satu lagi, berbeda. Lihat pembaruan.

0

Dari komentar pada laporan bug Red Hat yang ditautkan dari jawaban Tomasz :

Sepertinya Anda perlu menjalankan 00-systemd.conf jika Anda ingin systemd mengenali bahwa httpd telah mulai berhasil.

Saya menjalankan ini dan berhasil:

ln -sr /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.d/00-systemd.conf
systemctl restart httpd

Saya di Amazon Linux 2 (mungkin juga akan bekerja di RHEL / Centos 7).


Terima kasih telah memberikan kredit, tapi, ... di mana Anda mendapatkan ini?
G-Man Mengatakan 'Reinstate Monica'

@ G-Man Saya sudah mengedit jawaban ini untuk mengaitkan kutipan itu dengan benar.
Anthony Geoghegan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.