Chcę dodać stałą iptables
regułę do mojej nowej VPS
, a po krótkim wyszukiwaniu w Google zdziwiłem się, że istnieją dwa miejsca, w których można dodać tę regułę, które wydają się identyczne: /etc/rc.local
i /etc/init.d/rc.local
. Może ktoś wie, dlaczego są dwa miejsca na prosty kod startowy? Czy jest specyficzny dla Linuksa (ale Ubuntu ma oba!)? Czy jeden z nich jest przestarzały?
configuration
startup
grigoryvp
źródło
źródło
/etc/rc.local
jakiś czas temu.Odpowiedzi:
/etc/init.d
jest utrzymywany na Ubuntu dla wstecznej kompatybilności z sysvinit. Jeśli naprawdę na/etc/init.d/rc.local
to spojrzysz , zobaczysz (także z serwera LTS 12.04):A „Run /etc/rc.local” jest dokładnie tym, co robi. Całość
/etc/rc.local
to:Sądzę, że celem tego jest zapewnienie prostego miejsca do umieszczania poleceń powłoki, które chcesz uruchamiać podczas rozruchu, bez konieczności zajmowania się usługami stop | start, które są dostępne
/etc/init.d/rc.local
.Jest to więc usługa i może być uruchomiona jako taka. Dodałem
echo
wiersz/etc/rc.local
i:Jednak nie sądzę, aby coś o tym wspominało w
/etc/init
katalogu upstart (nie init.d!):W fazie upstart jest kilka usług „rc”:
Ale żaden z nich nie wydaje się mieć nic wspólnego z rc.local.
źródło
Jest to bardziej charakterystyczne dla dystrybucji. (na przykład nie znajdziesz innego rc.local w CentOS).
Teraz, gdy nadchodzi twoje aktualne pytanie, myślę, że dodanie czegokolwiek w /etc/init.d/rc.local sprawia, że zaczyna się ono jako „usługa”, podczas gdy wszystko w /etc/rc.local po prostu uruchamiałoby ten skrypt podczas uruchamiania.
Nie jestem do końca pewien, dlaczego Ubuntu nadal je utrzymuje? (Być może ktoś inny może rzucić nieco światła na tę część !!)
źródło
/etc/init.d/rc.local
czy przestaje uruchamiać rzeczy/etc/rc.local
(więcej szczegółów w mojej odpowiedzi)./etc/rc.local
skrypt jest procesem wykonywalnym zarządzanym przez/etc/initd/rc.local
skrypt, podobnie jak (np.)/bin/syslog
byłby to proces wykonywalny zarządzany przez/etc/initd/syslog
. Mówisz wprost, że/etc/rc.local
jest to tylko skrypt rozruchowy, a/etc/initd/rc.local
nie jest całkowicie oddzielną usługą na poziomie uruchamiania.