J'ai configuré certaines applications pour démarrer automatiquement à chaque connexion (par exemple, redshift-gtk, gtg) mais après les avoir ajoutées aux applications de démarrage ( System -> Preferences -> Startup Applications
), le temps de connexion a évidemment augmenté. En raison de tout cela, le temps qu'il faut pour que mes panneaux, mon bureau, etc. apparaissent est trop long - jusqu'à ce que je suis obligé d'attendre.
Je n'ai pas besoin que ces applications soient disponibles immédiatement, mais ce serait bien qu'elles démarrent finalement, pendant ce temps, le menu / panneau Ubuntu est disponible pour exécuter d'autres applications dont je pourrais avoir besoin.
J'ai essayé d'utiliser la commande at, avec l'intention de modifier toutes les applications de démarrage pour mettre les commandes dans la file d'attente at, mais cela n'a pas fonctionné car les applications ne reçoivent pas les variables d'environnement nécessaires (comme DISPLAY).
Est-ce à cela que nice
sert la commande? Avez-vous d'autres idées sur la façon dont je peux y parvenir? Si possible, je voudrais éviter de modifier les commandes des applications de démarrage, car cela signifierait beaucoup d'efforts pour répliquer sur d'autres machines que j'utilise.
Réponses:
Le nombre de secondes nécessaires pour attendre le chargement de votre bureau est arbitraire et peut changer en fonction de la situation. Au lieu de
sleep
, essayez d'utiliser les éléments suivants pour exécuter les applications de démarrage dès que la charge système a diminué:(Edit: Ajout de la suggestion de koushik.)
Enregistrez-le sous
~/bin/run-when-load-low
et ajoutezrun-when-load-low 'COMMAND'
dans les préférences des applications de démarrage.Remarques sur cette méthode:
DISPLAY
variable d'environnement à l'application. Pour la plupart des applications de bureau, ce sera tout ce dont vous avez besoin. Cela dit, assurez-vous de prendre en compte tous les cas spéciaux et gardez ce fait à l'esprit lorsque vous dépannez tout ce qui ne se comporte pas correctement. Un bon point de départ si vous pensez qu'une application peut nécessiter le passage d'autres variables d'environnement estprintenv
la documentation de l'application, bien que personnellement je n'ai pas encore rencontré ce problème.batch
affecte uniquement lorsque les applications sont exécutées; cela ne modifie pas leur priorité / gentillesse.run-when-load-low 'gedit My\ Notes.txt'
. Si vous avez vraiment besoin de passer des paramètres entre guillemets simples à votre application, vous devrez utiliser des guillemets doubles dans la commande de démarrage:run-when-load-low "gedit 'My Notes.txt'"
. Pour quelque chose de plus compliqué que cela, vous feriez probablement mieux de simplement modifier une copie du script avec votre commande codée en dur.la source
batch
? De plus, est-il possible que la charge du processeur diminue avant que le bureau n'ait complètement terminé le chargement (par exemple, en attendant que le disque soit chargé pour certaines icônes) et que ces applications démarrent, ce qui se traduit par une situation similaire à celle d'avant? En d'autres termes, les commandes s'exécutent-elles avec une priorité intrinsèquement inférieure qui donne lorsque d'autres applications veulent s'exécuter?batch
file d'attente comme toujours en cours d'exécution, j'ai donc fait le démarrage du processus en arrière-plan également. La ligne modifiée est la suivante:echo "export DISPLAY=$DISPLAY; notify-send 'Running on Load low' '$1' && $1 &" | batch
J'ai trouvé que le simple fait d'utiliser le
sleep 10 && COMMAND
nom de la commande ne fonctionnait pas. J'ai eu des problèmes avec le chargement conky et xchat trop tôt et j'ai été corrompu d'une manière ou d'une autre. J'ai dû écrire un petit script appelé~/bin/startup
et y mettre ceci:Vous devez modifier ses autorisations pour pouvoir l'exécuter
chmod +x ~/bin/startup
, puis remplacez simplement l'entrée des applications de démarrage par la commandestartup
et tout se déclenchera dans le script.Vous pourriez avoir un fichier pour chaque application si vous étiez de cette façon.
la source
sleep
va pas retarder le démarrage. Les applications de démarrage sont non bloquantes, ce qui signifie que plus d'une chose peut être chargée à la fois.sleep
ing permet au reste de gnome de charger puis charger les choses moins essentielles.Utilisez la commande «sleep».
Dans Système -> Préférences -> Applications de démarrage, modifiez la commande des programmes que vous souhaitez retarder:
Remplacez 10 par le nombre de secondes que vous voulez qu'il attende et COMMANDEZ avec ce qui était à l'origine dans la boîte de commande.
la source
COMMAND &
(exécuté en arrière-plan) fonctionnerait.