Uruchom komendę podczas rozruchu jako root

9

Muszę uruchomić skrypt bash podczas rozruchu jako administrator w Xubuntu. Nie wiem od czego zacząć. Muszę zrobić coś opisanego w przewodniku Arch Linux. Ten przewodnik mówi dokładnie:

Dodaj następujące na końcu pliku: /etc/rc.sysinit

# Do my action
/etc/rc.d/do_my_action

/bin/dmesg >| /var/log/dmesg.log

Ale nie mam /etc/rc.sysinitiw /etc/rc.d/Xubuntu. Jestem pewien, że są równoważne, prawda?

Lorenzo-s
źródło

Odpowiedzi:

9

Potrzebny plik to /etc/rc.local. Ten skrypt zostanie uruchomiony w pobliżu lub na końcu procesu rozruchu. Tak więc do tego czasu wszystko powinno być gotowe.

Jednak, jak zauważył @ bodhi.zazen, Upstart może być najlepszą opcją dla Ciebie. Sprawdź to .

Uwaga 1 : w wersji 15.04 i nowszych Ubuntu używa, systemda nie Upstart. Dlatego jeśli chcesz zastosować podejście serwisowe, zapoznaj się z tą odpowiedzią tutaj @muru

Uwaga 2 : W wersji 16.10 /etc/rc.localdomyślnie nie ma takiej opcji , ale jeśli ją utworzysz i sudo chmod u+x /etc/rc.localsprawisz, że będzie wykonywalna ( ), będzie działać, ponieważ istnieje usługa systemowa do jej pobrania, jeśli istnieje. Nie zapomnij wstawić wiersza exit 0na końcu pliku, aby zapobiec nieudanym poleceniom powodującym zawieszenie całego procesu rozruchu.

Scott Severance
źródło
Więc muszę tu umieścić ten kod? Na razie ten plik zawiera tylko exit 0. A jeśli mogę zapytać, kiedy system rc.localjest uruchamiany, kiedy system jest wykonywany, czy system plików jest gotowy, więc mogę także zapisać gdzieś dziennik dla tego polecenia, które chcę uruchomić?
lorenzo-s
Brzmi tak, jakbyś próbował uruchomić skrypt rozruchowy (init). Ubuntu używa upstart. rc.local uruchomi polecenie lub serię poleceń podczas rozruchu i może być najlepszą opcją. Co dokładnie próbujesz zrobić?
Panther
@ lorenzo-s: Zobacz moją edycję.
Scott Severance,
Ta odpowiedź może być również pomocna: askubuntu.com/a/20347/3940
Takkat,
1
Ok, rozwiązałem przejście my_scriptod /usr/local/bindo /usr/bin. Jestem również w stanie zapisać logowanie przy /var/logużyciu my_script &>> /var/log/my_script. Dziękuję Ci bardzo.
lorenzo-s