Avviare Script (o comando shell) all' avvio di ArchLinux

Pubblicità

Barrux

Utente Attivo
Messaggi
66
Reazioni
1
Punteggio
28
Ciao a tutti, devo eseguire questo comando "/home/c++/mainprog &" (esegue in background un programma in C++ che ho fatto io) ogni volta che lavoro sul computer, vorrei che si lanciasse da solo all' avvio, ho creato allora questo script che funziona con il comando "sh sript.sh", ma come faccio a renderlo automatico all' avvio ?

Script:
Codice:
#! /bin/sh
/home/c++/mainprog &


Grazie.
 
Codice:
# systemctl enable tuo_servizio
che generalmente va bene per i programmi installati.
Nello specifico non saprei dirti...
 
Ultima modifica:
Se lo vuoi al login, lo piazzi nella cartella .config/autostart nella home. Se usi KDE, c'è il gestore degli script nelle impostazioni di sistema. Se lo vuoi al boot, devi creare un servizio per system, oppure crealo come modulo del kernel.
 
Ciao a tutti, devo eseguire questo comando "/home/c++/mainprog &" (esegue in background un programma in C++ che ho fatto io) ogni volta che lavoro sul computer, vorrei che si lanciasse da solo all' avvio, ho creato allora questo script che funziona con il comando "sh sript.sh", ma come faccio a renderlo automatico all' avvio ?

Script:
Codice:
#! /bin/sh
/home/c++/mainprog &


Grazie.

Se lo script non è realmente necessario puoi mettere
/home/c++/mainprog &
In .bashrc. Ogni volta che fai il login viene avviato in automatico. ;)

- - - Updated - - -

Codice:
# systemctl enable tuo_servizio
che generalmente va bene per i programmi installati.
Nello specifico non saprei dirti...

1 - non sapevi nemmeno la distro che usava. Al momento Arch, Fedora e Opensuse usano system (e loro derivate ovviamente). Le altre usano sistemi di init basati sugli eventi.
2 - Non c'è bisogno di creare un service file apposito per una cosa così banale. ;)
 
Di sicuro conviene usare .bashrc se esegue sempre e comunque il login, per questioni di semplicità. Se invece ha necessità di far partire il programma indipendentemente dal login, bisogna leggersi un minimo come creare gli "unit files" di systemd. Sbaglio?
 
Hai letto il contenuto dello script? ;)

.bashrc è esattamente uno script, tenere uno script per avviare un altro script IMHO è solo incasinare tutto.
E in caso mettere

/percorso/allo/script &

in .bashrc è la stessa cosa. ;)
potrebbe semplicemente creare un servizio che avvia l'a.out...
Comunque bisognerebbe sapere cosa fa il programma nello specifico.
 
Di sicuro conviene usare .bashrc se esegue sempre e comunque il login, per questioni di semplicità. Se invece ha necessità di far partire il programma indipendentemente dal login, bisogna leggersi un minimo come creare gli "unit files" di systemd. Sbaglio?

Esatto.
I service file non sono nemmeno così compplicati.
Anzi, sono molto leggibili.
Una roba come:

Avvia: foo
Dipende da: foo1 foo2 foo3
Richiesto da: foo4 foo5 foo6

In pratica tutto ciò che è richiesto è sapere bene cosa fa il programma.

Però ha scritto:
"ogni volta che lavoro sul computer"

Quindi ho pensato che almeno il login lo faccia. Ovvio che poi se ha più di un utente e serve che si avvii sempre il metodo .bashrc diventa sconsigliato.

potrebbe semplicemente creare un servizio che avvia l'a.out...
Comunque bisognerebbe sapere cosa fa il programma nello specifico.

Esatto, il fatto che non l'ha specificato mi fa pensare che va benissimo che venga avviato come un programma dell'utente e non come root.

Se usa distro diverse da OS, Arch, e Fedora deve creare un initscript, il che è molto più palloso. :sisi:
 
Ultima modifica:
Ho avuto lo stesso problema quando rc.local è passato in "deprecated".

1: in
/usr/lib/systemd/script/FILENAME
metti i comandi che vuoi effettuare al boot
2: in
/usr/lib/systemd/system/NOMEFILE.service
imposti il servizio, nel mio caso il file contiene

[Unit]
Description=Startup Commands

[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/scripts/NOMEFILE

[Install]
WantedBy=multi-user.target
3: abilita il servizio con
systemctl enable NOMEFILE
 
Pubblicità
Pubblicità
Indietro
Top