[Risolto] Script all'avvio

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
RoadCat
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 537
Iscrizione: domenica 16 novembre 2014, 12:54
Distribuzione: Ubuntu 23.04

[Risolto] Script all'avvio

Messaggio da RoadCat »

Ciao a tutti,
Se faccio questo post è perché con le varie guide su internet non sono stato in grado. Avrei bisogno di creare un eseguibile sh (con una sola riga di codice tra l'altro) che si avvii automaticamente all'accensione del pc. Qualcuno sarebbe così gentile da indicarmi un modello da modificare con la mia riga affinché questo funzioni? Sono anche disposto a leggere della documentazione ma finora ho solo trovato cose in forum e non ci ho capito un granché
Ultima modifica di RoadCat il venerdì 20 agosto 2021, 15:06, modificato 1 volta in totale.
saxtro
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 4 giugno 2006, 13:16
Distribuzione: Kubuntu 20.04

Re: Script all'avvio

Messaggio da saxtro »

Il modo più semplice di fare quello che chiedi, è aggiungere il tuo script a crontab con la direttiva @reboot.

La via attuale, è creare un servizio systemd di tipo oneshot (https://gist.github.com/drmalex07/d006f12914b21198ee43)
korda
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1721
Iscrizione: giovedì 24 dicembre 2020, 15:58

Re: Script all'avvio

Messaggio da korda »

Quello che scrive @saxtro è corretto se devi lanciare qualcosa al boot. In pratica hai 3 alternative:
1) Put the command in your crontab file. The crontab file in Linux is a daemon that performs user-edited tasks at specific times and events. To edit the file, open a terminal and type "sudo crontab -e" to open your crontab file in the default text editor. At the first available line, type "@reboot xxxx", where "xxxx" is the command you wish to run. Save the file and exit.

2) Put a script containing the command in your /etc directory. Create a script such as "startup.sh" using your favorite text editor. Save the file in your /etc/init.d/ directory. Change the permissions of the script (to make it executable) by typing "chmod +x /etc/init.d/mystartup.sh".

3) Edit the /rc.local script using your text editor. On Fedora systems, this script is located in /etc/rc.d/rc.local, and in Ubuntu, it is located in /etc/rc.local. Once you add the commands you wish to run -- making sure you do so as root -- save the file and exit. The commands will run after the next startup.


Se invece ti serve qualcosa che parta automaticamente dopo il login puoi passare pure dall'avvio automatico.

Ricordati di rendere lo script eseguibile e/o mettere lo shebang in prima riga
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Avatar utente
RoadCat
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 537
Iscrizione: domenica 16 novembre 2014, 12:54
Distribuzione: Ubuntu 23.04

Re: Script all'avvio

Messaggio da RoadCat »

saxtro ha scritto:
martedì 10 agosto 2021, 12:59
Il modo più semplice di fare quello che chiedi, è aggiungere il tuo script a crontab con la direttiva @reboot.

La via attuale, è creare un servizio systemd di tipo oneshot (https://gist.github.com/drmalex07/d006f12914b21198ee43)
Guardo e cerco di ragiornarci sopra
korda ha scritto:
martedì 10 agosto 2021, 14:11
Quello che scrive @saxtro è corretto se devi lanciare qualcosa al boot. In pratica hai 3 alternative:
1) Put the command in your crontab file. The crontab file in Linux is a daemon that performs user-edited tasks at specific times and events. To edit the file, open a terminal and type "sudo crontab -e" to open your crontab file in the default text editor. At the first available line, type "@reboot xxxx", where "xxxx" is the command you wish to run. Save the file and exit.

2) Put a script containing the command in your /etc directory. Create a script such as "startup.sh" using your favorite text editor. Save the file in your /etc/init.d/ directory. Change the permissions of the script (to make it executable) by typing "chmod +x /etc/init.d/mystartup.sh".

3) Edit the /rc.local script using your text editor. On Fedora systems, this script is located in /etc/rc.d/rc.local, and in Ubuntu, it is located in /etc/rc.local. Once you add the commands you wish to run -- making sure you do so as root -- save the file and exit. The commands will run after the next startup.


Se invece ti serve qualcosa che parta automaticamente dopo il login puoi passare pure dall'avvio automatico.

Ricordati di rendere lo script eseguibile e/o mettere lo shebang in prima riga
Forse l'utilizzo di avvio automatico è la soluzione migliore per me, non mi è chiaro come usare i collegamenti simbolici dell'avviatore del programma; io ho un semplice script di una riga, non un programma vero e proprio, forse mi basta mettere quel file .sh al posto dell'avviatore.

Mi scuso comunque con entrambi per aver risposto così tardi, purtroppo avevo dimenticato di attivare la notifica via mail di risposta


EDIT: ho risolto inserendo lo script nell'avvio automatico. Grazie mille
fabrian
Prode Principiante
Messaggi: 14
Iscrizione: domenica 3 luglio 2016, 11:23
Sesso: Maschile

Re: Script all'avvio

Messaggio da fabrian »

saxtro ha scritto:
martedì 10 agosto 2021, 12:59
Il modo più semplice di fare quello che chiedi, è aggiungere il tuo script a crontab con la direttiva @reboot.

La via attuale, è creare un servizio systemd di tipo oneshot (https://gist.github.com/drmalex07/d006f12914b21198ee43)
Sto cercando anche io una soluzione, proverò ad usare la unit di systemd, per scopo didattico mi piacerebbe anche capire però come funziona crontab.
Nello specifico io ho un setup con root e il mio utente, è un pc personale, ho aggiunto al crontab del mio utente lo script, questo script deve effettuare un aggiornamento dei repo ed eventualmente un upgrade del so, quando lo lancio da terminale con sudo funziona bene ma all'avvio con crontab non ha i permessi di esecuzione (ho impostato 771 e l'owner è il mio utente), vorrei sapere come faccio a lanciarlo da root con crontab? seguendo FHS dove dovrei posizionare il mio script? Grazie
saxtro
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 4 giugno 2006, 13:16
Distribuzione: Kubuntu 20.04

Re: [Risolto] Script all'avvio

Messaggio da saxtro »

Il crontab non passa la password di root per i comandi che richiedono sudo.
Per cui o pianifichi sul crontab di root senza il sudo

Codice: Seleziona tutto

$ sudo -i
[password]
# crontab -e
Oppure modifichi il file sudoers (o ne crei uno in sudoers.d) in cui istruisci sudo per non chiedere al password con apt e gli altri comandi che ti servono
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 14 ospiti