Linux Mint ile bir hizmeti (apache2) otomatik olarak başlatma


11

(Strangley) Linux Mint'e giriş yaparken kurulu Apache2 başlamıyor.

Bu komutu çalıştırmak devam ettirir:

sudo service apache2 start

Her girişte bu hizmeti nasıl başlatmayı denemeliyim?


~/.xinitrcBaşlangıçta çalıştırılacak olan bu komutu yerleştirebilirsiniz .
n0pe

2
@MaxMackie Aksine, ~/.xinitrcdoğru olmayan oturum açma saatinde çalıştırılır. Apache'nin önyükleme sırasında kök tarafından başlatılması gerekir.
Gilles 'SO- kötü olmayı kes'

@Gilles, doğru unuttum, düzelttiğiniz için teşekkürler. Ancak, apache'nin neden önyükleme sırasında başlatılması gerekiyor? Giriş yapmak kabaca aynı şeyi yapamaz mı?
n0pe

@MaxMackie Önyüklemeden hemen sonra oturum açmazsanız değil, tabii ki. Ayrıca Apache sizin gibi çalışmaz, bu yüzden ona ayrıcalıklar vermeniz gerekir. Önyükleme komut dosyalarının bir bölümünde başlamalı ve normalde başlamalıdır.
Gilles 'SO- kötü olmayı kes'

@Gilles haklı. Buna ışık tuttuğunuz için teşekkürler.
n0pe

Yanıtlar:


12

Debian (Ubuntu / Linux Mint)

rcconf (CLI-GUI)

sudo apt-get install rcconf
sudo rcconf

update-rc.d

sudo update-rc.d -f apache2 add

veya

sudo update-rc.d apache2 defaults

RedHat / Fedora / CentOS

chkconfig

sudo chkconfig --add apache2

veya

sudo chkconfig -- level 35 apache2 on

Rcconf'i çalıştırdığımda Apache zaten kontrol edildi.
eoinoc

Koşu update-rc.dbir hata komut kurşun: update-rc.d: warning: apache2 start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5).
eoinoc

Eğer verdiniz update-rc.d apache2 varsayılan veya güncelleme-rc.d -f apache2 3 5 ekleyin
earthmeLon

1
Teşekkürler, ama ikisi de işe yaramadı. İlk olarak "zaten var" uyarısı, ikincisi sonuçlandı warning: apache2 start runlevel arguments (none) do not batch LSB default-Start values (2 3 4 5).
eoinoc

6

Mint Ubuntu'yu temel aldığından ve Ubuntu Upstart'a geçtiğinden Upstart Yemek Kitabı , bir hizmetin önyüklemede veya belirtilen herhangi bir çalışma seviyesinde başlatılması için tüm bilgilere sahiptir.

Bu site , Apache'yi önyüklemede başlatmak için ayrıntılı bir yemek kitabı verir.


Bu sayfa bir bash betiği yerleştirmekten bahsediyor /etc/init.d/apache2. Ancak bu dosya, Apache'nin kendisi tarafından yerleştirilmiş olması gereken çok daha karmaşık bir bash betiğiyle doludur.
eoinoc

3

Aynı sorunun bir diğer nedeni rc [0-6] .d dosyasındaki apache bağlantılarının önceliğidir. Benimki S90 ve K09'du ve Apache önyükleme yapmaya başlamazdı. Öncelikleri varsayılanlara ayarlamak, 20, benim için çalıştı. Öncelikle mevcut bağlantıların kaldırılması gerekir.

sudo update-rc.d -f apache2 remove
sudo update-rc.d apache2 defaults

2

Kapanışta bir hata gördüm:

/Etc/apach2/apache.conf .... / etc / apache / sites-enable / mysite 230 satırındaki sözdizimi hatası: Böyle bir dosya veya dizin yok

Şey, mysiteana klasörümdeki bir dosyaya bağlandı.

Bu normalde bir sorun olmamalı, diye düşündüm.

Ama bildiğim kadarıyla ev bölümüm şifreli . Bu nedenle, Apache'nin yüklenirken sanal site dosyasını okuyamayacağını tahmin ediyorum. Şifremi yazana kadar dosyaya erişilemedi.

Karmaşık bir durum ve bunu çözmek aylar sürdü :)


Peki bunu nasıl çözdün?
Jonas Äppelgran

1

2019'da güncellenen yeni bir cevap:

sudo systemctl başlangıç ​​httpd

sudo systemctl etkinleştir httpd

Systemctl komutu, systemd sistemini ve hizmetini kontrol etmek için yeni bir araçtır. Bu eski SysV init sistemi yönetiminin yerini alıyor. Modern Linux işletim sistemlerinin çoğu bu yeni aracı kullanıyor. CentOS 7, Ubuntu 16.04 veya daha yenisi veya Debian 9 sistemi ile çalışıyorsanız. Şimdi sistemi seçtiler.

Etkinleştirilmiş hizmet, sistem önyüklemesinde otomatik olarak başlar. Bu, SysV başlangıcı için chkconfig yerine systemd için benzer seçenektir.


1
Başlamasını istemeden önce etkinleştirilmesi için siparişi ters çevirmeyi düşünebilirsiniz.
Jeff Schaller
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.