Linux'ta başlangıçta çalışan programı durdur


29

Linux'ta başlangıçta çalışan bir programı nasıl durdurabilirim. Bazı uygulamaları başlangıçtan kaldırmak istiyorum, supervisordörneğin apache2 tarafından yönetilmelerini sağlamak için


İşte bu yüzden onu etiketlemedim ... Oldukça farklı dağıtımlarla çalıştığım için tüm varyasyonları arıyorum.
Frozenskys,

Yanıtlar:


29

Dağıtımınıza bağlı olarak, sistem hizmetlerini etkinleştirmek / devre dışı bırakmak için chkconfig veya update-rc.d aracını kullanın.

Bir redhat / suse / mandrake tarzı sistemde:

sudo chkconfig apache2 off 

Debian'da:

sudo update-rc.d -f apache2 remove

Daha fazla bilgi için kendi man sayfalarına göz atın.


Neden Debian'a dayalı dağıtımlara ihtiyaç duyuyorsun?
Frozenskys,

2
Burada çalınan iki dosya seti var. Asıl init betiğini /etc/init.d/ adresinde aldınız ve bu dizine linkleri /etc/rcrunlevel.d/ dizininde bulabilirsiniz. Bu çocuklar /etc/init.d/ dosyasındaki betiği gösterir. Eğer -f update-rd.d kullanmazsanız UNLESS başarısız olur /etc/init.d/ içindeki komut dosyası zaten silinmiştir. Eğer -f update-rc.d kullanırsanız /etc/init.d/ betiğinin silinip silinmediğine bakılmaksızın, bağlantı dosyalarını uygun şekilde silecektir.
jacksonh

Ah, bu çok mantıklı, runlevel betiklerinin sadece init betikleriyle bağlantısı olduğunu unutmuşum. Ekstra açıklama için teşekkürler.
Frozenskys,

6

Modern bir Ubuntu sistemi ve birkaç başka dağıtımla uğraşıyorsanız, geleneksel init komut dosyalarının ve başlangıç ​​komut dosyalarının bir kombinasyonuyla uğraşmak zorunda kalabilirsiniz. Init betiğini yönetmek diğer cevaplarla kaplıdır. Aşağıdakiler, bir başlatma servisinin önyüklemeye başlamasını durdurmanın bir yoludur:

# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled

Bu yöntemin sorunu, hizmeti kullanarak başlatmanıza izin vermemesidir:

# service start servicename

Buna bir alternatif de servicename.confdosyayı favori editörünüzde açmak ve onunla başlayan satırları yorumlamaktır:

start on

Yani, bunu değiştirin

#start on ...

burada "...", daha önce "başla" dan sonra olandı. Bu şekilde, tekrar etkinleştirmek istediğinizde, "başlangıç" parametrelerinin ne olduğunu hatırlamak zorunda kalmazsınız.

Son olarak, yeni bir başlangıç ​​sürümüne sahipseniz, basitçe "manual" kelimesini yapılandırma dosyasının sonuna ekleyebilirsiniz. Bunu doğrudan kabuktan yapabilirsiniz:

# echo "manual" >> /etc/init/servicename.conf

Bu, start-up'ın dosyadaki önceki “start-on” cümlelerini görmezden gelmesine neden olacaktır.


2

Son Fedora ve Future RHEL sistemlerinde

systemctl disable httpd.service

httpd hizmetini devre dışı bırakacak


Teşekkürler! Birçok yöntem denemiştim, ancak bu systmctlkomut iyi çalıştı.
loved.by.Jesus

1

Tüm başlangıç ​​servislerini listelemek için

    systemctl

Bir servisin başlangıçta çalışmasını durdurmak için

    sudo systemctl disable servicename

Örneğin, ssh sunucusunu başlangıçta çalıştırmayı durdurmamız gerekirse

    sudo systemctl disable sshd.service

Bunu kullanarak tekrar etkinleştirebiliriz.

    sudo systemctl enable sshd.service

Hemen hemen her linux dağıtımı, başlangıç ​​hizmetlerini önyükleme için systemd kullanır. Bu yüzden yukarıdaki komutlar dağıtımların çoğu için çalışır.


U&L'ye hoş geldiniz ve katkılarınızdan dolayı teşekkür ederiz! Bu sorunun şimdi yaklaşık sekiz yaşında olduğunu belirtmek isterim, bu nedenle kabul edilen cevap o zaman için doğru idi. Systemctl kullanmak şimdi doğru olabilir , ancak farklı bir soru için doğru .
Jeff Schaller

@ Ayrıntılı açıklamalar için teşekkürler. Önyükleme başlangıcının Xubuntu'mda nasıl çalıştığını anlamama yardımcı oldu.
loved.by.Jesus

0

Slackware ve Arch linux, yukarıda verilen Ubuntu ve Redhat tarzı örneklerden farklı olarak açılışta benzer durdurma / başlatma işlemlerine sahiptir.

Hem Slackware hem de Arch linux'larında, dizinde sh, dizini /etc/rc.d, tipik olarak her gün için bir komut dosyasını veya alt sistem başına bir diziyi bulunur .

Örneğin, Slackware Apache web sunucusunu /etc/rc.d/rc.httpd, sistem başlatılırken uygun bir zamanda "start" argümanı ile adlandırılan bir betikle başlatır . Arch linux'un farklı isimli komut dosyaları vardır, ancak aynı şey devam eder.

Bazı işlemlerin sistem önyüklemesi sırasında başlamasını önlemek için, Slackware'de, uygun komut dosyasını /etc/rc.d dosyasında çalıştırılamaz duruma getirin. Apache'nin bir sonraki açılışta başlamasını önlemek için:

chmod -x /etc/rc.d/rc.httpd

Açılışta başlatılan bir Apache'yi durdurmak için: /etc/rc.d/rc.httpd stop Kök olmanız gerekir.

Arch biraz daha karmaşık. Bir kabuk betiği /etc/rc.conf dosyası bir DAEMONS dizisine sahiptir. Apache'nin açılışta başlamasını önlemek için, bu satırı /etc/rc.conf dosyasında değiştirin:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)

Bu çizgiye:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)

Zaten yürütülmekte olan bir apache'yi durdurmak için /etc/rc.d/httpd stoproot olarak çalıştırmalısınız .


0

Ubuntu 10.04'te bazı başlangıç ​​programlarını GUI'den kontrol edebilirsiniz.

SystemPreferencesStartup Applications

Başlangıç ​​Uygulamaları Tercihleri


1
Orijinal görüntü artık orada değil.
tshepang

-1

1) klavyenizdeki superkey öğesine dokunun 2) 'Başlangıç ​​Uygulamaları' için arama yapın 3) devre dışı bırakmak istediğiniz programı seçin 4) worx ise bu cevaba benzer şekilde vurun.

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.