Zapomnij o rc.local.
Jak powiedziałem o CentOS 7 i Debianie 8 oraz Ubuntu 15 :
Używasz systemu systemd + Linux. /etc/rc.localjest podwójnym mechanizmem zgodności wstecznej w systemd, ponieważ jest to mechanizm zgodności wstecznej dla mechanizmu, który sam był mechanizmem zgodności w klonie van 5 Smoorenburga System rc.
Używanie /etc/rc.localmoże pójść okropnie źle. Ludzie byli zaskoczeni faktem, że systemd nie działa rc.localw taki sam sposób, w tym samym miejscu w bootstrapie, do którego są przyzwyczajeni. (Lub błędnie się spodziewałem: w rzeczywistości nie działał ostatni w starym systemie, jak wciąż wskazuje podręcznik OpenBSD.) Inni byli zaskoczeni faktem, że skonfigurowali się, rc.localoczekując starych sposobów robienia rzeczy, następnie całkowicie cofnięta przez m.in. nowych udevprzepisów, NetworkManager, systemd-logind, systemd-resolved, lub różne „zestaw” s.
Jak pokazano na przykładzie „ Dlaczego„ init 0 ”powoduje„ Nadmiar argumentów ”podczas instalacji Arch? ”, Niektóre systemy operacyjne już zapewniają systemd bez funkcji kompatybilności wstecznej, takich jak systemd-rc-local-generatorgenerator . Podczas gdy Debian nadal zachowuje funkcje kompatybilności wstecznej , Arch Linux buduje systemd z wyłączonymi . Tak więc w Arch i takich systemach operacyjnych oczekuje /etc/rc.local się całkowitego zignorowania .
Zapomnij o rc.local. To nie jest droga. Masz systemd + system operacyjny Linux. Stwórz więc odpowiednią usystematyzowaną jednostkę usługową i nie zaczynaj od punktu, który dzieli dwa poziomy kompatybilności wstecznej. (W Ubuntu i Fedorze jest trzy razy usuwany, rcklon van Smoorenburg System 5 , rc.localktóry następnie został dwukrotnie zastąpiony ponad dziesięć lat temu, najpierw przez start-up, a następnie przez systemd.)
Pamiętaj także o pierwszej regule migracji do systemd .
To nie jest nawet nowy pomysł, który jest specyficzny dla systemd. W systemach van Smoorenburg rci Upstart trzeba było zrobić odpowiedni rcskrypt van Smoorenburg lub plik zadania Upstart, a nie używać rc.local. Nawet podręcznik FreeBSD zauważa, że w dzisiejszych czasach rczamiast korzystać z niego, tworzy się odpowiedni skrypt Mewburn /etc/rc.local. Mewburn rczostał wprowadzony przez NetBSD 1.5 w 2000 roku.
/etc/rc.localpochodzi z czasów wydania Siódmej Edycji Unix i wcześniejszych. Został on zastąpiony przez /etc/inittabATlev rci Unix System 3 oparty na poziomie pracy (nieco inny /etc/inittabw AT&T Unix System 5) w 1983 roku . Nawet to jest teraz historią.
Utwórz właściwe natywne definicje usług dla systemu zarządzania usługami, niezależnie od tego, czy będzie to pakiet usług dla zestawu narzędzi nosh service-manageri system-control, /etc/rc.d/skrypt dla Mewburn rc, plik jednostki usługi dla systemd, plik zadania dla Upstart, katalog usługi dla runit / s6 / daemontools -cencore, a nawet /etc/init.d/scenariusz do van Smoorenburga rc.
W systemie takie pliki dodane przez administratora są /etc/systemd/system/zwykle (lub /usr/local/lib/systemd/system/rzadko). Dzięki menadżerowi usług nosh, /var/local/sv/jest konwencjonalnym miejscem dla lokalnych pakietów usług. Używa Mewburn rcna FreeBSD /usr/local/etc/rc.d/. Pliki spakowanych jednostek usług i pakiety usług, jeśli je tworzysz, to jednak idź w różne miejsca.
Dalsza lektura