GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come ridurre il tempo impiegato per l'accesso posticipando/ritardando alcune applicazioni di avvio?

Ho impostato alcune applicazioni per l'avvio automatico ad ogni accesso (ad es. redshift-gtk, gtg) ma dopo averle aggiunte alle applicazioni di avvio (System -> Preferences -> Startup Applications ) ovviamente il tempo impiegato per effettuare il login è aumentato. A causa di tutto ciò, il tempo necessario per la visualizzazione dei miei pannelli, desktop, ecc. è troppo lungo, fino a quando sono costretto ad aspettare.

Non ho bisogno che queste app siano immediatamente disponibili, ma sarebbe bello se alla fine si avviassero, nel frattempo il menu/pannello di Ubuntu è disponibile per l'esecuzione di altre app di cui potrei aver bisogno.

Ho provato a utilizzare a comando, con l'intenzione di modificare tutte le applicazioni di avvio per mettere i comandi in coda, ma questo non ha funzionato poiché le app non ottengono le variabili di ambiente necessarie (come DISPLAY).

È questo ciò che è nice comando è usato per? Qualche altra idea su come posso realizzare questo? Se possibile, vorrei evitare di modificare i comandi delle applicazioni di avvio, poiché ciò significherebbe molto sforzo per replicare su altre macchine che utilizzo.

Risposta accettata:

Il numero di secondi necessari per attendere il caricamento del desktop è arbitrario e può cambiare a seconda della situazione. Invece di sleep , prova a utilizzare quanto segue per eseguire le applicazioni di avvio non appena il carico del sistema è diminuito:

(Modifica:aggiunto il suggerimento di koushik.)

#!/bin/bash
# 
# Delays running an application until the system load has declined.
# 
# Usage:
#   run-when-load-low 'your command here'

echo "export DISPLAY=$DISPLAY; $1 &" | batch

exit 0

Salvalo come ~/bin/run-when-load-low e aggiungi run-when-load-low 'COMMAND' nelle Preferenze delle applicazioni di avvio.

Note su questo metodo:

  • Lo script sopra è quello che ha funzionato per me. Supera solo il DISPLAY variabile di ambiente all'applicazione. Per la maggior parte applicazioni desktop questo sarà tutto ciò di cui hai bisogno. Detto questo, assicurati di considerare eventuali casi speciali e tieni presente questo fatto durante la risoluzione dei problemi di qualsiasi cosa che non si comporta correttamente. Un buon punto di partenza se ritieni che un'applicazione possa richiedere il passaggio di altre variabili di ambiente è printenv e la documentazione dell'applicazione, anche se personalmente non ho ancora riscontrato questo problema.
  • La mia comprensione del valore di "caricamento" del sistema è che tiene conto delle attese IO, quindi le applicazioni ritardate non dovrebbero avviarsi accidentalmente troppo presto durante le pause di utilizzo della CPU causate dai processi desktop in attesa di IO. Questa non è un'area di cui so molto, quindi correggimi se sbaglio qui.
  • batch influisce solo su quando le applicazioni vengono eseguite; non altera la loro priorità/bellezza.
  • Questo dovrebbe essere ovvio, ma se il tuo sistema sempre ha un carico elevato, le applicazioni pianificate con questo metodo potrebbero non essere mai eseguite.
  • Se devi eseguire un'applicazione con un parametro che contiene spazi, puoi eseguirne l'escape usando la barra rovesciata:run-when-load-low 'gedit My\ Notes.txt' . Se hai davvero bisogno di passare parametri con virgolette singole alla tua applicazione, dovrai usare le virgolette doppie nel comando di avvio:run-when-load-low "gedit 'My Notes.txt'" . Per qualsiasi cosa più complicata di questa, probabilmente faresti meglio a modificare semplicemente una copia dello script con il tuo comando hardcoded.
Correlati:non è possibile eseguire un'app GUI da cron?
Ubuntu
  1. Come disabilitare la sessione di accesso guest di Ubuntu 11.10

  2. Come migliorare il tempo di avvio dell'applicazione in Linux

  3. Come cambiare la lingua tramite un terminale?

  4. Come modificare l'ordine degli utenti nella schermata di accesso?

  5. Come misurare il tempo di accesso al desktop con Bootchart?

Come cambiare il fuso orario sul tuo sistema Ubuntu

Come gestire le applicazioni di avvio in Ubuntu 20.04 LTS

Come aggiungere un'applicazione nell'elenco delle applicazioni aperte in Ubuntu

Come aggiungere un'applicazione all'elenco delle applicazioni aperte?

Come rendere l'indicatore-sysmonitor come indicatore predefinito nella schermata di accesso?

L'indicatore dell'ora non mostra la data/l'ora?