Je sais comment exécuter un programme au démarrage, à la connexion (Système> Préférences> Applications de démarrage) ou à l'ouverture d'un shell (.bashrc). J'ai également lu "exécuter le script après le bureau chargé?" . Ce que j’ai réalisé, c’est que chaque application ajoutée aux applications de démarrage allonge le délai jusqu’à ce que le poste de travail devienne utilisable. Je cherche donc un moyen de lancer tous les éléments "intéressants" d'un script (fonctionnant correctement) qui s'exécute une fois que le démarrage normal est terminé.
Je ne suis pas tout à fait clair comment y arriver. Est-ce que j'utiliserais un deuxième script qui appelle le premier avec & (afin qu'il s'exécute en arrière-plan) et ajoute un délai d'attente (quelques secondes | spécifique) au premier?
Si vous voulez lancer quelque chose de cher, lancez-le en arrière-plan avec un retard. Par exemple
after 20s find-all-the-dirty-dishes &
after 1m find ~ -name '*~' -mtime +30 -exec rm '{}' ';'
où vous devrez implémenter vous-même after
mais cela peut être quelque chose comme ça
#!/bin/sh
sleep "$1"
shift
exec "$@"
Appelez simplement sleep
au début de votre script "Nice-to-aves". Cela ne devrait pas empêcher le chargement du bureau. Vous pouvez également être en mesure d'accélérer les choses sur du matériel multicœur en mettant en arrière-plan chaque processus.
par exemple.
sleep 20s
<something that takes a long time> &
<this can now start immediately> &
...
Les deux commandes seront exécutées en parallèle, mais elles attendront 20 secondes avant de commencer. Vous pouvez utiliser "m", "h" ou "d" pour spécifier des minutes, des heures ou des jours si quelques secondes ne sont pas ce que vous aviez à l'esprit. =)