Ich weiß, wie man ein Programm beim Booten, beim Anmelden (System > Einstellungen > Startprogramme) oder beim Öffnen einer Shell (.bashrc) ausführt. Ich habe auch gelesen"Skript ausführen, nachdem Desktop geladen wurde?". Mir ist aufgefallen, dass jede Anwendung, die zu den Startanwendungen hinzugefügt wird, die Zeit verlängert, bis der Desktop nutzbar wird. Daher suche ich nach einer Möglichkeit, alle „Nice-to-haves“ über ein Skript zu starten (das funktioniert), das ausgeführt wird, nachdem der reguläre Start abgeschlossen ist.
Mir ist nicht ganz klar, wie ich dahin komme. Würde ich ein zweites Skript verwenden, das das erste mit & aufruft (so dass es im Hintergrund läuft) und dem ersten eine Wartezeit (einige Sekunden|bestimmtes Ereignis) hinzufügen?
Antwort1
Rufen Sie es einfach sleep
am Anfang Ihres „Nice-to-haves“-Skripts auf. Dadurch sollte das Laden des Desktops nicht blockiert werden. Möglicherweise können Sie die Dinge auf Multi-Core-Hardware auch beschleunigen, indem Sie jeden Prozess in den Hintergrund stellen.
z.B
sleep 20s
<something that takes a long time> &
<this can now start immediately> &
...
Die beiden Befehle werden parallel ausgeführt, warten jedoch 20 Sekunden, bevor sie starten. Sie können „m“, „h“ oder „d“ verwenden, um Minuten, Stunden oder Tage anzugeben, wenn ein paar Sekunden nicht das sind, was Sie im Sinn hatten. =)
Antwort2
Wenn Sie etwas Teures auf den Markt bringen, tun Sie dies im Hintergrund und mit einer Verzögerung. Zum Beispiel
after 20s find-all-the-dirty-dishes &
after 1m find ~ -name '*~' -mtime +30 -exec rm '{}' ';'
wo Sie selbst implementieren müssen after
, aber es kann so etwas sein
#!/bin/sh
sleep "$1"
shift
exec "$@"