Zatrzymaj program uruchamiany podczas uruchamiania w systemie Linux


29

Jak zatrzymać program uruchamiany podczas uruchamiania w systemie Linux. Chcę usunąć niektóre aplikacje ze startu, aby umożliwić zarządzanie nimi supervisordnp. Apache2


Właśnie dlatego tego nie oznaczyłem ... Szukam wszystkich odmian, ponieważ pracuję z kilkoma różnymi dystrybucjami.
Frozenskys,

Odpowiedzi:


29

W zależności od dystrybucji użyj narzędzia chkconfig lub update-rc.d, aby włączyć / wyłączyć usługi systemowe.

W systemie w stylu redhat / suse / mandrake:

sudo chkconfig apache2 off 

W systemie Debian:

sudo update-rc.d -f apache2 remove

Sprawdź ich strony podręcznika, aby uzyskać więcej informacji.


Dlaczego potrzebujesz -f (zakładam, że jest to siła) na dystrybucjach opartych na Debianie?
Frozenskys,

2
Odtwarzane są tutaj dwa zestawy plików. Rzeczywisty skrypt init znajduje się w /etc/init.d/, a linki do niego znajdują się w katalogu runlevel /etc/rcrunlevel.d/. Ci faceci wskazują na skrypt w /etc/init.d/ Jeśli nie użyjesz -f update-rd.d zawiedzie, JEŚLI skrypt w /etc/init.d/ jest już usunięty. Jeśli użyjesz opcji -f update-rc.d, poprawnie usunie pliki dowiązań, niezależnie od tego, czy skrypt /etc/init.d/ zostanie usunięty.
jacksonh,

Ach, to ma sens, zapomniałem, że skrypty poziomu pracy były tylko linkami do skryptów inicjujących. Dzięki za dodatkowe wyjaśnienia.
Frozenskys,

6

Jeśli masz do czynienia z nowoczesnym systemem Ubuntu i kilkoma innymi dystrybucjami, być może będziesz musiał poradzić sobie z kombinacją tradycyjnych skryptów init i skryptów upstart. Zarządzanie skryptami inicjującymi zawiera inne odpowiedzi. Oto jeden ze sposobów, aby zatrzymać usługę upstart przed uruchomieniem podczas rozruchu:

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

Problem z tą metodą polega na tym, że nie pozwala ona na uruchomienie usługi przy użyciu:

# service start servicename

Alternatywą jest otwarcie servicename.confpliku w ulubionym edytorze i skomentowanie wszystkich wierszy rozpoczynających się od:

start on

To znaczy zmień to na

#start on ...

gdzie „...” jest tym, co było po „wcześniejszym uruchomieniu”. W ten sposób, gdy chcesz go ponownie włączyć, nie musisz pamiętać, jakie były parametry „start on”.

Wreszcie, jeśli masz nową wersję upstart, możesz po prostu dodać słowo „manual” na końcu pliku konfiguracyjnego. Możesz to zrobić bezpośrednio z powłoki:

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

Spowoduje to, że upstart zignoruje wszelkie frazy „start on” wcześniej w pliku.


2

W najnowszych systemach Fedora i Future RHEL

systemctl disable httpd.service

wyłączy usługę httpd


Dzięki! Próbowałem wielu metod, ale to systmctlpolecenie działało dobrze.
loved.by.Jesus

1

Aby wyświetlić listę wszystkich usług uruchamiania

    systemctl

Aby zatrzymać uruchamianie usługi podczas uruchamiania

    sudo systemctl disable servicename

Na przykład, jeśli musimy przestać uruchamiać serwer ssh podczas uruchamiania

    sudo systemctl disable sshd.service

Możemy to włączyć ponownie za pomocą

    sudo systemctl enable sshd.service

Prawie każda dystrybucja linuksowa używa systemd do uruchamiania usług startowych. Tak więc powyższe polecenia działają dla większości dystrybucji.


Witamy w U&L i dziękuję za Twój wkład! Chciałbym zaznaczyć, że to pytanie ma teraz około ośmiu lat, więc przyjęta odpowiedź była jak na razie poprawna. Używanie systemctl może być teraz poprawne , ale poprawne jest dla innego pytania .
Jeff Schaller

@ Książę, dziękuję za szczegółowe wyjaśnienia. Pomogło mi to zrozumieć, jak działa rozruch w moim Xubuntu.
loved.by.Jesus

0

Slackware i Arch linux mają podobne metody zatrzymywania / uruchamiania procesów podczas rozruchu, inne niż podane powyżej przykłady w stylu Ubuntu i Redhat.

Zarówno w Linuksie Slackware, jak i Arch skrypty sh istnieją w katalogu /etc/rc.d, zwykle jeden skrypt na demona lub jeden skrypt na podsystem.

Na przykład Slackware uruchamia serwer WWW Apache za pomocą skryptu /etc/rc.d/rc.httpdwywoływanego w odpowiednim czasie podczas uruchamiania systemu z argumentem „start”. Arch Linux ma skrypty o różnych nazwach, ale dzieje się tak samo.

Aby powstrzymać jakiś proces przed uruchomieniem podczas uruchamiania systemu, na Slackware, po prostu sprawia, że ​​odpowiedni skrypt w /etc/rc.d nie jest wykonywalny. Aby zatrzymać uruchamianie Apache przy następnym uruchomieniu:

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

Aby zatrzymać Apache, który zaczął się przy starcie systemu: /etc/rc.d/rc.httpd stop Musisz być rootem.

Łuk jest nieco bardziej złożony. Plik /etc/rc.conf, skrypt powłoki, ma tablicę DAEMONS. Aby powstrzymać Apache przed uruchomieniem, zmień ten wiersz w pliku /etc/rc.conf:

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

Do tej linii:

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

Aby zatrzymać już działający apache, wykonaj go /etc/rc.d/httpd stopjako root.


0

W systemie Ubuntu 10.04 można kontrolować niektóre programy startowe z GUI.

SystemPreferencesStartup Applications

Preferencje aplikacji startowych


1
Oryginalnego obrazu już nie ma.
tshepang

-1

1) dotknij klawisza superkey na klawiaturze 2) wyszukaj „Aplikacje startowe” 3) wybierz program, który chcesz wyłączyć 4) kliknij jak ta odpowiedź, jeśli worx.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.