Pembaruan: Menanggapi komentar:
periksa proses apache:
$ ps a | grep apache 3
grep: 3: No such file or directory
$ ps a | grep apache
4514 pts/0 S+ 0:00 grep --color=auto apache
$ ps a | grep apache2
4516 pts/0 S+ 0:00 grep --color=auto apache2
memeriksa log kesalahan apache
$ tail /var/log/apache2/error.log
[Sun Aug 07 03:14:19 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 03:13:58 2011] [notice] Graceful restart requested, doing restart
[Mon Aug 08 03:14:00 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 09:03:16 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 08 09:05:47 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
Asli: Saya telah menghentikan apache, tetapi mengapa masih memiliki jumlah proses yang sama berjalan?
$ ps -A | grep apache
1663 ? 00:00:00 apache2
1667 ? 00:00:00 apache2
1668 ? 00:00:00 apache2
1669 ? 00:00:00 apache2
1670 ? 00:00:00 apache2
1671 ? 00:00:00 apache2
$ /etc/init.d/apache2 stop
* Stopping web server apache2 [ OK ]
$ ps -A | grep apache
1663 ? 00:00:00 apache2
1667 ? 00:00:00 apache2
1668 ? 00:00:00 apache2
1669 ? 00:00:00 apache2
1670 ? 00:00:00 apache2
1671 ? 00:00:00 apache2
Terima kasih!
Jawaban:
Ini bisa terjadi sesekali ketika Apache menolak untuk berhenti dengan baik atau memiliki Proses Zombie . Untuk yang pertama Anda dapat membunuh semua proses yang berjalan dengan
sudo killall -9 apache2
; Namun, untuk yang terakhir Anda harus menunggu mereka pergi. Jika Apache tidak ingin berhenti dengan baik, yang benar-benar ingin Anda lakukan adalah menyelidiki apa yang terjadi. Mencari tahu persis apa yang terjadi bisa jadi sulit.Interaktif
strace
dari id proses dapat memberikan petunjuk tentang situs apa yang bertindak dan menyebabkan masalah. Dari Anda di atas,ps -A
Anda dapat memeriksa proses pertama denganIni akan dilampirkan pada jejak proses yang sedang berjalan, yang menyediakan keluaran langsung dari apa yang sedang terjadi. Kapan saja Anda bisa Ctrl+C
Sumber daya tambahan adalah log kesalahan utama untuk Apache yang dapat ditemukan di sini.
/var/log/apache2/error.log
Anda ingin mendapatkan potongan log yang layak dan memeriksanya untuk detail. Jika masalahnya adalah masalah yang sedang berjalan sedang berjalanIni mirip dengan yang
strace
akan berjalan secara realtime. Untuk baris N terakhir ganti-f
dengan di-#
mana#
angka positif seperti 50, 100, 282, dll.sumber
Pastikan Anda memiliki izin yang tepat untuk menghentikan layanan.
Jika Anda menjalankan:
Anda tidak akan mendapatkan kesalahan apa pun hanya:
Mencoba:
sumber
Saya juga memiliki masalah yang sama, dan mencoba yang berikut:
untuk menghentikan layanan, dan
untuk memulainya lagi.
Ini berfungsi untuk saya, saran yang mungkin diterima.
sumber
Perintah itu
systemctl stop apache2
bekerja untuk saya.sumber
Proses dapat diminta (dengan mengirimkan sinyal ke mereka) untuk berhenti. The
kill
perintah adalah cara untuk melakukan itu. Jika Anda mengetahui ID proses (PID) dari proses, itu dapat ditanyakan dengan baik dengan menjalankan perintah di bawah ini di terminal:Contoh di atas mengirimkan PID sinyal TERM default (kode 15). Anda dapat mencari kode sinyal di halaman manual kill (
man kill
).Ketika program mengabaikan sinyal TERM yang dikirim kepada mereka, masih mungkin untuk memberikan sedikit tekanan dengan mengirimkan sinyal KILL (kode 9). Sinyal ini digunakan sebagai upaya terakhir, karena prosesnya mungkin tidak menyimpan data yang belum disimpan.
Menentukan
-SIGNAL_CODE
sebagai parameter pertama sebelum ID proses akan mengirimkan proses sinyal spesifik. Fitur lain yang berguna darikill
perintah ini adalah Anda dapat menentukan lebih banyak PID seperti dalam contoh berikut:Cobalah untuk menghentikan proses Apache dengan menggunakan
kill -9
baris. Mereka harus berhenti kecuali ada sesuatu yang menghalangi mereka untuk melakukannya.sumber
Saya memiliki masalah yang sama tetapi Anda tidak bisa hanya melakukan satu
service apache2 stop
perintah - Anda harus melakukan satu proses PER . Kemudian, Anda DAPAT ingin menambahkansudo
di depan kalau-kalau Anda masuk ke beberapa akun ganjil yang membutuhkannya sehingga jika Anda melihat 9 proses berjalan, lakukan 9sudo service apache2 stop
Bekerja dengan baik untuk saya.
sumber
Setelah menginstal nginx, apache saya berhenti berfungsi dengan benar. Tampaknya dalam beberapa kasus apache membingungkan dengan nginx. Hapus saja nginx
sumber