Ubuntu - Esegui il comando all'avvio con "sudo"


90

Vorrei eseguire un sudocomando all'avvio di Ubuntu (prima che qualcuno acceda):

sudo searchd

Come lo farei?

Risposte:


194

È possibile aggiungere il comando nello /etc/rc.localscript che viene eseguito alla fine dell'avvio.

Scrivi il comando prima exit 0. Qualsiasi cosa scritta dopo exit 0non sarà mai eseguita.


38
Prima, di sicuro. Qualsiasi cosa scritta dopo exit 0non sarà mai eseguita.
Didier Trosset

Ciao ho anche un comando rvmsudo da eseguire nella stessa situazione. normalmente il comando richiede la password. Ci saranno problemi se inserisco il comando direttamente in /etc/rc.local?
ravi1991

@fmonegaglia Dipende. Se si desidera che il comando venga avviato e lo script attende che finisca prima di passare al comando successivo dello script, allora no &. Se vuoi che il seguente comando venga avviato anche se quello attuale non è terminato, aggiungi un file &.
Didier Trosset

@NoOne Controlla i diritti di accesso su questo file per l'utente corrente. Avviare il comando dell'editor con sudo può fare il trucco.
Didier Trosset

1
Ovviamente esiste e sì, ho impostato il bit eseguibile. Quando provo ad abilitare il servizio, ricevo solo The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units) […].qualche consiglio in merito?
oarfish

9

Modifica la configurazione di tty /etc/init/tty*.confcon uno shellscript come parametro:

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

Questo presuppone che stiamo modificando tty1 e lo script che legge l'input è theInputScript.sh.

Un avvertimento che questo script viene eseguito come root, quindi quando si inseriscono delle cose si hanno i privilegi di root. Aggiungi anche un percorso alla posizione dello script.

Importante: lo script quando finisce, deve invocare / sbin / login altrimenti non sarai in grado di accedere al terminale.


1
questa risposta è stata piuttosto utile per me durante la costruzione del nostro prodotto, grazie mille
José F. Romaniello

0

Belle risposte. È anche possibile impostare i lavori (ovvero i comandi) con " Crontab " per una maggiore flessibilità (che fornisce diverse opzioni per eseguire script, accedere agli output, ecc.), Sebbene richieda più tempo per essere compreso e impostato correttamente:

Usando "@reboot" puoi eseguire un comando una volta, all'avvio.

Conclusione : corri$ sudo crontab -e -u root

E aggiungi una riga alla fine del file con il tuo comando come segue:

@reboot sudo searchd
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.