Możesz zmienić kolejność, zmieniając nazwy dowiązań symbolicznych w /etc/rcX.d/, gdzie x będzie poziomem uruchomienia.
Zobaczysz kilka plików zaczynających się od Sxx lub Kxx. Łącza S są śledzone podczas uruchamiania, podczas gdy łącza K są analizowane pod kątem zamknięcia. Tutaj xx oznacza kolejność.
Ale ta kolejność jest ustalona z jakiegoś powodu, więc bądź ostrożny podczas ich zmiany. ntpd powinien uruchomić się dopiero po zainicjowaniu podsystemu sieciowego.
To. Absolutnie to. Jeśli ręcznie zmienisz nazwę dowiązań symbolicznych, otrzymasz niespodziankę, jeśli ktoś przyjdzie i chkconfig off servicename && chkconfig on servicename
ucieknie
Działa jak urok. Musiałem skonfigurować zależności między mysqld a kontenerem serwletu. Nie mogłem ustalić pozycji początkowej mysqld, więc skonfigurowałem pozycję początkową kontenera serwletu na 99 i działa dobrze, mysqld zaczyna się jako pierwszy. Dzięki.
jpangamarca
7
Chcesz poczytać trochę o swoich poziomach pracy i katalogach rc.d. W katalogach rc.d można znaleźć łącza S i K, takie jak S20apache K10apache, czyli w zasadzie to, co nakazuje uruchamianie / zamykanie skryptów.
Wprowadzono pewne zmiany w tej architekturze, ale większość linuksów nadal z niej korzysta.
Dziwi mnie, że większość dystrybucji nadal korzysta z tego systemu; lepsze systemy takie rcordersą już od jakiegoś czasu.
Chris S
Ja trochę zazdroszczę solaris svc, ale mógłbym obejść się bez XML-a
coredump
To jest na miejscu. Jednak w zależności od dystrybucji możesz mieć różne sposoby zmiany tej wartości - przeczytaj więc dokumentację dla swojej dystrybucji.
Andrew M.,
1
Niektóre dystrybucje, takie jak Ubuntu, używają Upstart ( Wikipedia ).
Wstrzymano do odwołania.
7
Jeśli przyjechałeś tutaj, są szanse, że masz dwie usługi, w których jedna zależy od drugiej, ale ponieważ zaczynają się w niewłaściwej kolejności, ta z zależnością nie uruchamia się. Sugestie dotyczące edytowania dowiązań symbolicznych mają charakter informacyjny, jeśli chodzi o zilustrowanie przebiegu sekwencji startowej i działałyby w porządku, dopóki ktoś nie wykonałby „chkconfig” w Twojej usłudze, w którym to momencie dowiązania symboliczne zostałyby ponownie utworzone tak, jak były pierwotnie. Naprawdę, chcesz poradzić sobie z tym problemem na poziomie skryptu inicjującego, co i tak jest o wiele mniej skomplikowane. Będzie również spójny na różnych poziomach działania. Prawdopodobnie nie będziesz musiał dodawać wiersza „# chkconfig”, jak sugerowano w odpowiedzi 4, ponieważ prawdopodobnie już tam będzie podobna linia.
Wykorzystam przykład serwera z uruchomionym Openldap (slapd) z backendem bazy danych MySQL (mysqld). Konfiguracja tej pary i dlaczego możesz chcieć, to zupełnie inna historia.
Podczas uruchamiania Openldap nie uruchamia się, ponieważ zależy od MySQL, a sekwencja uruchamiania próbuje go uruchomić przed nim - slapd ma pozycję 27, a mysqld ma pozycję 64
Odpowiednie dowiązania symboliczne w /etc/rc3.d/ to
S27slapd -> ../init.d/slapd
and
S64mysqld -> ../init.d/mysqld
Szukam wartości ustawionych w dwóch skryptach inicjujących:
Odpowiedzi:
Możesz zmienić kolejność, zmieniając nazwy dowiązań symbolicznych w /etc/rcX.d/, gdzie x będzie poziomem uruchomienia.
Zobaczysz kilka plików zaczynających się od Sxx lub Kxx. Łącza S są śledzone podczas uruchamiania, podczas gdy łącza K są analizowane pod kątem zamknięcia. Tutaj xx oznacza kolejność.
Ale ta kolejność jest ustalona z jakiegoś powodu, więc bądź ostrożny podczas ich zmiany. ntpd powinien uruchomić się dopiero po zainicjowaniu podsystemu sieciowego.
źródło
Zamiast robić to ręcznie, jak sugerowano w innych odpowiedziach, możesz także zmienić skrypt inicjujący. Po prostu dodaj taką linię do nagłówka:
Spowoduje to
chkconfig
dodanie usługi do poziomów uruchamiania 3 i 5, z pozycją początkową 90 i pozycją zabicia 10.źródło
chkconfig off servicename && chkconfig on servicename
Chcesz poczytać trochę o swoich poziomach pracy i katalogach rc.d. W katalogach rc.d można znaleźć łącza S i K, takie jak S20apache K10apache, czyli w zasadzie to, co nakazuje uruchamianie / zamykanie skryptów.
Wprowadzono pewne zmiany w tej architekturze, ale większość linuksów nadal z niej korzysta.
źródło
rcorder
są już od jakiegoś czasu.svc
, ale mógłbym obejść się bez XML-aJeśli przyjechałeś tutaj, są szanse, że masz dwie usługi, w których jedna zależy od drugiej, ale ponieważ zaczynają się w niewłaściwej kolejności, ta z zależnością nie uruchamia się. Sugestie dotyczące edytowania dowiązań symbolicznych mają charakter informacyjny, jeśli chodzi o zilustrowanie przebiegu sekwencji startowej i działałyby w porządku, dopóki ktoś nie wykonałby „chkconfig” w Twojej usłudze, w którym to momencie dowiązania symboliczne zostałyby ponownie utworzone tak, jak były pierwotnie. Naprawdę, chcesz poradzić sobie z tym problemem na poziomie skryptu inicjującego, co i tak jest o wiele mniej skomplikowane. Będzie również spójny na różnych poziomach działania. Prawdopodobnie nie będziesz musiał dodawać wiersza „# chkconfig”, jak sugerowano w odpowiedzi 4, ponieważ prawdopodobnie już tam będzie podobna linia.
Wykorzystam przykład serwera z uruchomionym Openldap (slapd) z backendem bazy danych MySQL (mysqld). Konfiguracja tej pary i dlaczego możesz chcieć, to zupełnie inna historia.
Podczas uruchamiania Openldap nie uruchamia się, ponieważ zależy od MySQL, a sekwencja uruchamiania próbuje go uruchomić przed nim - slapd ma pozycję 27, a mysqld ma pozycję 64
Odpowiednie dowiązania symboliczne w /etc/rc3.d/ to
Szukam wartości ustawionych w dwóch skryptach inicjujących:
Edytuję linię chkconfig w /etc/rc.d/init.d/slapd, aby mieć pozycję początkową wyższą niż ta w /etc/rc.d/init.d/mysqld (wybrałem 85)
Robię „chkconfig slapd on” i ponownie sprawdzam dowiązania symboliczne
Teraz, kiedy ten serwer się uruchamia, mysqld uruchamia się przed slapd i wszystko jest w porządku ze światem.
źródło