Avvio automatico app Linux su Chromebook
L’avvio automatico applicazioni Linux Chromebook non è previsto direttamente dalle impostazioni standard di ChromeOS. È però possibile configurare systemd nel contenitore Linux per eseguire un’applicazione grafica ogni volta che l’ambiente Linux viene avviato. Questa soluzione funziona con programmi installati nel contenitore Debian, come editor, browser, strumenti di sviluppo e applicazioni grafiche. È importante distinguere l’avvio del contenitore Linux dall’accesso a ChromeOS: il servizio parte quando il contenitore viene avviato, non necessariamente appena viene visualizzata la schermata principale del Chromebook.
Cosa serve per avviare un’app Linux automaticamente
Il Chromebook deve avere attivo l’Ambiente di sviluppo Linux, chiamato anche Crostini, e l’applicazione grafica deve essere già installata nel contenitore Linux. Il metodo usa un servizio systemd dell’utente, senza modificare i file interni di ChromeOS.
Sono necessari questi requisiti:
- ChromeOS aggiornato a una versione che supporti systemd nel contenitore Linux.
- Un’applicazione Linux con interfaccia grafica già installata.
- Accesso all’app Terminale Linux.
- Il percorso corretto del comando che avvia l’applicazione.
Per verificare che l’applicazione sia disponibile, apri Terminale Linux e usa command -v, sostituendo nome-app con il comando effettivo:
command -v nome-app
Per esempio, il comando può restituire /usr/bin/gedit, /usr/bin/firefox o un altro percorso presente nel contenitore. Se il terminale non restituisce alcun percorso, il programma non è installato oppure il suo comando di avvio è diverso dal nome visualizzato nel menu.
ChromeOS può mostrare l’opzione relativa a systemd nelle impostazioni dell’Ambiente di sviluppo Linux. Il percorso può cambiare leggermente secondo la versione di ChromeOS, ma in genere si trova in Impostazioni > Avanzate > Sviluppatori > Ambiente di sviluppo Linux. Se l’opzione non è presente, il supporto può essere già attivo oppure la versione installata può non offrire ancora quella funzione.
Verifica il funzionamento di systemd con questo comando:
systemctl --user --version
Se il comando non funziona, il servizio automatico non può essere configurato con questa procedura. Non è consigliabile modificare manualmente i componenti interni di ChromeOS per forzare systemd.
Come creare uno script per l’applicazione grafica
Uno script separato rende più semplice sostituire l’applicazione o aggiungere un breve ritardo prima dell’avvio. Il ritardo è utile perché l’interfaccia grafica del contenitore potrebbe non essere pronta nello stesso istante in cui parte il servizio.
Crea la cartella personale per gli script:
mkdir -p ~/bin
Crea quindi il file di avvio:
nano ~/bin/avvia-app
Inserisci il contenuto seguente e sostituisci /percorso/del/comando con il percorso restituito da command -v:
#!/bin/sh sleep 3 exec /percorso/del/comando
Per esempio, per avviare un programma situato in /usr/bin/gedit, il file deve contenere:
#!/bin/sh sleep 3 exec /usr/bin/gedit
Salva il file con Ctrl+O, conferma con Invio e chiudi nano con Ctrl+X. Rendi eseguibile lo script:
chmod +x ~/bin/avvia-app
Puoi testare lo script direttamente dal terminale:
~/bin/avvia-app
Se l’applicazione si apre correttamente, chiudila prima di creare il servizio systemd. Se non si apre, controlla il percorso del comando e verifica che l’applicazione funzioni normalmente quando viene avviata dal menu delle app Linux.
Come configurare il servizio systemd
Il servizio systemd dell’utente deve essere salvato nella cartella ~/.config/systemd/user. Crea la cartella con questo comando:
mkdir -p ~/.config/systemd/user
Crea il file del servizio:
nano ~/.config/systemd/user/app-grafica.service
Inserisci questa configurazione:
[Unit] Description=Avvio automatico applicazione grafica Linux After=graphical-session.target [Service] Type=simple ExecStart=%h/bin/avvia-app Restart=on-failure RestartSec=5 Environment=DISPLAY=:0 Environment=WAYLAND_DISPLAY=wayland-0 Environment=XDG_RUNTIME_DIR=/run/user/%U [Install] WantedBy=default.target
La variabile DISPLAY=:0 consente alle applicazioni che usano X11 di collegarsi al display grafico di Linux. La variabile WAYLAND_DISPLAY=wayland-0 copre le applicazioni compatibili con Wayland, mentre XDG_RUNTIME_DIR indica la directory temporanea dell’utente. Alcune applicazioni possono richiedere solo una parte di queste variabili.
Salva il file e ricarica la configurazione systemd:
systemctl --user daemon-reload
Attiva il servizio e avvialo subito per effettuare il primo test:
systemctl --user enable --now app-grafica.service
Il comando enable registra l’avvio automatico del servizio, mentre --now lo esegue immediatamente senza dover riavviare il contenitore Linux. Se la configurazione è corretta, l’applicazione grafica si aprirà dopo pochi secondi.
Controlla lo stato del servizio con:
systemctl --user status app-grafica.service
Per leggere gli errori prodotti dall’applicazione o da systemd, usa:
journalctl --user -u app-grafica.service
Un errore relativo a DISPLAY indica generalmente che l’interfaccia grafica non era ancora disponibile. In questo caso aumenta il valore di sleep 3 nello script, per esempio portandolo a sleep 8. Un errore Exec format o Permission denied indica invece che il file non è eseguibile oppure contiene un percorso errato.
Cosa succede quando accedi al Chromebook
Il servizio configurato con systemd parte quando viene avviato il contenitore Linux e raggiunge il target predefinito dell’utente. ChromeOS non offre una funzione universale per avviare automaticamente un’app Linux esattamente al momento dell’accesso al Chromebook; per questo motivo il contenitore può rimanere spento fino all’apertura di un’app Linux o del Terminale.
Questa distinzione è importante per l’avvio automatico applicazioni Linux Chromebook:
- l’accesso a ChromeOS avvia la sessione principale del Chromebook;
- l’avvio di un’app Linux avvia normalmente il contenitore Crostini;
- systemd esegue il servizio quando il contenitore Linux è attivo;
- il servizio non può accendere da solo il contenitore se ChromeOS lo ha completamente arrestato.
In pratica, dopo un riavvio del Chromebook potrebbe essere necessario aprire prima Terminale Linux o un’altra app Linux. Da quel momento systemd può avviare automaticamente il programma configurato. Il comportamento può variare tra modelli, versioni di ChromeOS e impostazioni di sospensione del contenitore.
Per disattivare temporaneamente il servizio senza eliminarlo, esegui:
systemctl --user stop app-grafica.service
Per impedirne l’avvio automatico:
systemctl --user disable app-grafica.service
Per riattivarlo in seguito:
systemctl --user enable --now app-grafica.service
Se l’applicazione viene aperta due volte, controlla che non sia già stata avviata manualmente e che il servizio non venga eseguito da più file di configurazione. Per rimuovere definitivamente il servizio, disattivalo, elimina il file .service e ricarica systemd:
systemctl --user disable --now app-grafica.service rm ~/.config/systemd/user/app-grafica.service systemctl --user daemon-reload
L’avvio automatico applicazioni Linux Chromebook funziona quindi in modo affidabile all’avvio del contenitore Linux, ma non equivale a un’applicazione nativa di avvio automatico di ChromeOS.
Potrebbe interessarti anche:
- Gestire programmi avvio automatico macOS con launchctl
- Verificare firma applicazioni macOS Terminale
- Come misurare l’avvio lento delle app su Mac
- Tastiera e mouse non funzionano all’avvio del PC: come risolvere il blocco delle porte USB
FAQ
Non in modo garantito con le funzioni standard di ChromeOS. Il servizio systemd parte quando il contenitore Linux viene avviato, che può richiedere l’apertura di Terminale Linux o di un’altra app Linux.
Funziona con le applicazioni grafiche installate nel contenitore Linux, purché possano essere avviate dal terminale e utilizzino correttamente X11 o Wayland.
Le cause più comuni sono un percorso errato nel file ExecStart, variabili grafiche mancanti oppure un avvio troppo rapido. I comandi systemctl --user status e journalctl --user -u mostrano gli errori disponibili.
Sì. Crea un servizio systemd separato per ogni applicazione, usando nomi di file e descrizioni differenti.
Usa systemctl --user disable --now app-grafica.service; il servizio potrà essere riattivato in seguito con systemctl --user enable --now app-grafica.service.
Altri articoli di questa serie:
- Attivare systemd su Chromebook: guida pratica
- Installare Flatpak su Chromebook: guida pratica
- Wine su Chromebook: installare programmi Windows
- Installare Docker su Chromebook: guida e fix
- Configurare lingua Linux su Chromebook: tutorial
- Installare font Linux su Chromebook: procedura rapida
- Personalizzare Terminale Linux Chromebook: alias e prompt
- Configurare stampante Linux su Chromebook con CUPS
- Inoltro porte Linux Chromebook: sito locale
- DNS Linux Chromebook: risolvere gli errori passo passo
- Come configurare proxy su Chromebook e Linux
- IP statico Chromebook: configurarlo sul Wi-Fi
- App predefinite Android Chromebook: guida pratica
- Cambiare lingua app Android Chromebook: procedura
- Widget Android su Chromebook: come aggiungerli
- Schermo diviso Android Chromebook: due app affiancate
- Configurare Phone Hub Chromebook: tutorial passo-passo
- Gestire utenti Chromebook: profili e ospite sicuri
- Diagnostica hardware Chromebook: test passo passo
