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:

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:

PDF Strumenti PDF gratis Nel browser, senza upload Apri gli strumenti