Ubuntu - Uruchom polecenie przy starcie za pomocą „sudo”

91

Chciałbym uruchomić sudopolecenie podczas uruchamiania Ubuntu (zanim ktokolwiek się zaloguje):

sudo searchd

Jak bym to zrobił?

Mark Willis
źródło

Odpowiedzi:

195

Możesz dodać polecenie w /etc/rc.localskrypcie, który jest wykonywany po zakończeniu uruchamiania.

Napisz polecenie wcześniej exit 0. Wszystko, co później exit 0zostanie napisane , nigdy nie zostanie wykonane.

Didier Trosset
źródło
38
Na pewno wcześniej. Wszystko, co później exit 0zostanie napisane , nigdy nie zostanie wykonane.
Didier Trosset
Cześć, mam też polecenie rvmsudo do wykonania w tej samej sytuacji. polecenie normalnie poprosiłoby o hasło. Czy będą jakieś problemy, jeśli umieszczę polecenie bezpośrednio w /etc/rc.local?
ravi1991
@fmonegaglia To zależy. Jeśli chcesz, aby polecenie zostało uruchomione, a skrypt czeka na zakończenie przed przejściem do następnego polecenia w skrypcie, to nie &. Jeśli chcesz, aby następująca komenda została uruchomiona, nawet jeśli bieżąca nie jest zakończona, dodaj plik &.
Didier Trosset
@NoOne Sprawdź prawa dostępu do tego pliku dla bieżącego użytkownika. Uruchomienie polecenia edytora za pomocą sudo może załatwić sprawę.
Didier Trosset
1
Oczywiście, że istnieje i tak, ustawiłem bit wykonywalny. Kiedy próbuję włączyć usługę, otrzymuję tylko The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units) […].jakąś poradę na ten temat?
oarfish
9

Edytuj konfigurację tty /etc/init/tty*.confza pomocą skryptu powłoki jako parametru:

(...)
exec /sbin/getty -n -l  theInputScript.sh -8 38400 tty1
(...)

Zakładamy, że edytujemy tty1, a skrypt odczytujący dane wejściowe toInputScript.sh.

Słowo ostrzeżenia, ten skrypt jest uruchamiany jako root, więc kiedy wprowadzasz do niego rzeczy, masz uprawnienia roota. Dołącz również ścieżkę do lokalizacji skryptu.

Ważne: skrypt po zakończeniu musi wywołać / sbin / login, w przeciwnym razie nie będziesz mógł zalogować się w terminalu.

Samorodek
źródło
1
ta odpowiedź była dla mnie bardzo przydatna podczas tworzenia naszego produktu, wielkie dzięki
José F. Romaniello
0

Niezłe odpowiedzi. Możesz również ustawić zadania (tj. Polecenia) za pomocą " Crontab ", aby uzyskać większą elastyczność (która zapewnia różne opcje uruchamiania skryptów, logowania danych wyjściowych itp.), Chociaż zrozumienie i prawidłowe ustawienie wymaga więcej czasu:

Używając „@reboot”, możesz raz uruchomić polecenie podczas uruchamiania.

Podsumowanie : biegnij$ sudo crontab -e -u root

I dodaj linię na końcu pliku za pomocą polecenia w następujący sposób:

@reboot sudo searchd
Javi
źródło