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
[email protected] 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'
Peter VARGA
sumber
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.

Rui F Ribeiro
sumber
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


sumber
-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).

luds
sumber
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