Zwykle używam service start/stop
lub, initctl start/stop
aby uruchomić lub zatrzymać proces demona, ale teraz szukam, aby wyłączyć proces demona przed uruchomieniem na przykładzie uruchamiania mysqld
.
Obecnie co robie jest zmiana nazwy /etc/init/mysql.conf
na /etc/init/mysql.conf.bak
ale po przeczytaniu trochę o systemd
poznałem, że stanowi enable & disable
opcję dla powyższego zadania.
Czy jest coś podobnego w Ubuntu 12.04 z upstart
.
systemctl [enable|disable|is-enabled] mysqld.service
Odpowiedzi:
Możesz wyłączyć usługi, uruchamiając następujące polecenie:
Fragment strony podręcznika:
źródło
Prawidłowym sposobem wyłączenia i uruchomienia usługi jest utworzenie pliku XX.override,
echo 'manual' > /etc/init/mysqld.override
W ten sposób usługa upstart nie uruchomi się automatycznie
źródło
Ubuntu 12.04
?@RSK yes, why don't you just give it a try?
Podejrzewam, ponieważ bardzo niewygodne jest ponowne uruchomienie systemu za pomocą „próby” każdej porady z tej strony.@ warl0ck ma rację; chciałem dodać, że ta informacja jest dość dobrze udokumentowana w dokumentacji Upstart: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting
Konkretnie:
źródło
Jest też ładne oprogramowanie, które może w tym pomóc. Nazywa się rcconf.
Wystarczy pobrać za pomocą:
i użyj go z poleceniem
Otrzymasz ładny (wiersz poleceń) interfejs do wyłączania / włączania usług.
źródło
Przejdź do spróbować
/etc/rc2.d
i zmienić to, co chcesz, nie do uruchomienia przy starcie: zmiana (początkowy kapitał), „S” do „K” (np,S02mysql
doK02mysql
). Jeśli zmienisz zdanie, po prostu to odwróć. Myślę, że 2 odnosi się do poziomu pracy, w którym przypadku 2 jest domyślnym poziomem pracy dla wielu użytkowników. Prawdopodobnie właśnie tam masz większość rzeczy do codziennego użytku na komputerze.Edycja : Przeczytaj komentarz Jamesa O'Gormana poniżej.
źródło
who -r
lubrunlevel
.who --runlevel
.init
podczas zamykania uruchomi się „KXXscript stop”. Powinieneś albo usunąć dowiązanie symboliczne, albo usunąć bit wykonawczy z prawdziwego skryptu init. Wierzę, że Debian używa tegoupdate-rc.d
do zarządzania. Zastosowanie RHEL (i pochodnych)chkconfig
.W przypadku Upstart konfiguracja usługi leży w plikach
/etc/init/
. Na przykład ssh jest kontrolowany za pomocą pliku konfiguracyjnego/etc/init/ssh.conf
Ten plik określa „zdarzenia”, które podpowiedzą Upstart o rozpoczęciu „zadania”.
Aby zapobiec automatycznemu uruchamianiu usługi, można zastosować jedną z kilku metod:
a) Zmień nazwę pliku service.conf, aby nie kończył się na .conf
b) Skomentuj wiersz „start on” z pliku service.conf.
W nowszych wersjach upstart (przynajmniej od wersji 1.3) można również zastąpić start on-line za pomocą pliku service.override, dzięki czemu można użyć:
# echo manual > /etc/init/service.override
Na koniec możesz również dodać słowo kluczowe „manual” na końcu pliku konfiguracyjnego usługi, np. Poprzez:
# echo manual >> /etc/init/service.conf
Pamiętaj, że to nie „zatrzymuje” uruchomionej usługi, po prostu uniemożliwia jej automatyczne uruchomienie. Po ustawieniu na „ręczne” uruchamianie kontrolujesz usługę za pomocą initctl, np. Aby zatrzymać i uruchomić demona SSH:
# initctl stop ssh
# initctl start ssh
Prawdopodobnie najlepsza dokumentacja dla Upstart znajduje się na stronie http://upstart.ubuntu.com/cookbook/
Sekcja 11.44 dotyczy „wyłączania usługi z automatycznego uruchamiania, tutaj: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting
źródło
Cóż, muszę powiedzieć, że oświadczenie
jest trochę mylące, ponieważ oznacza dołączenie pliku zastępowania. Przetestowałem to 14.04 z menedżerem sieci i następujące nie działały
Jednak to zadziałało
Tak więc, IMO, initctl szuka pierwszej niezakomentowanej linii i wykonuje ją. Może się mylę, ale to były moje wyniki testu. Wejścia są mile widziane.
źródło