Mam zainstalowany mysql (z repozytoriów) na komputerze programistycznym (laptopie) i nie potrzebuję demona działającego przy każdym uruchomieniu. Skopiowałem /etc/init/mysql.conf do /etc/init/mysql.conf.old, a następnie usunąłem wszystko zgodnie z linią „start on”. Jednak po ponownym uruchomieniu nie mogę już uruchomić mysqld poprzez upstart:
$ sudo service mysql start
start: Unknown job: mysql
To również kończy się niepowodzeniem (próbowanie czegokolwiek w tym momencie):
$ sudo service mysql restart
stop: Unknown job: mysql
start: Unknown job: mysql
To jest mój skrypt wstępny:
# /etc/init/mysql.conf
....
start on
stop on starting rc RUNLEVEL=[016]
To jest domyślny skrypt:
# /etc/init/mysql.conf.old
....
start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]
Wszystko, co przeczytałem do tej pory, sugeruje, że w ten sposób można zapobiec uruchamianiu usług podczas uruchamiania. Czy istnieje lepszy sposób, aby to zrobić, czy też popełniłem błąd w skrypcie upstart?
AKTUALIZACJA : Usunąłem plik kopii zapasowej z / etc / init i zrestartowałem się, myśląc, że może był konflikt, ale upstart nadal mówiUnknown job: mysql
Odpowiedzi:
Jeśli korzystasz z systemu Ubuntu 11.04 lub nowszego, możesz użyć
manual
słowa kluczowego i plików .override w / etc / init, aby wyłączyć automatyczne uruchamianie:manual
skutecznie usuwastart on
zwrotkę z konfiguracji zadania.Jeśli korzystasz z systemu Ubuntu 10.04, możesz to zrobić:
Ostatni
start on
w pliku zastąpi żadnych poprzednich, tak to powinno działać, choć zakłada brak jest zdarzenie nazywanever
.źródło
Z tego postu: Sekcja „Rozpocznij od” musi być kompletna i poprawna pod względem składni.
Ten wiersz oznacza wykonanie, gdy poziom uruchamiania nie jest w [0,1,2,3,4,5,6] (są to jedyne poziomy pracy, więc nigdy nie jest uruchamiany).
Inną opcją jest użycie
chkconfig
zgodnie z tym postem.źródło