Quicksilver-Hänger mit Cronjob umgehen (Update)
Bei mir bleibt Quicksilver seit zwei Jahren auf drei verschiedenen Rechnern nach ein bis zwei Tagen regelmäßig hängen, in seltenen Fällen wird Safari gleich mit stillgelegt: Ich habe alles mögliche…
ei mir bleibt Quicksilver seit zwei Jahren auf drei verschiedenen Rechnern nach ein bis zwei Tagen regelmäßig hängen, in seltenen Fällen wird Safari gleich mit stillgelegt:
Ich habe alles mögliche versucht: Kataloge neu aufbauen lassen, alle Kataloge außer Applications deaktiviert, Quicksilver neu installiert, das Internet nach Lösungen durchsucht etc. – ohne Erfolg.
Vor zwei Tagen bin ich auf die Idee gekommen, per Cronjob Quicksilver sozusagen prophylaktisch alle vier Stunden neu zu starten; seither hatte ich – Toi Toi Toi! – keinen Hänger mehr. Vielleicht gibt es ja Leidensgenoss(inn)en – für die ist diese Anleitung:
Man schreibt sich folgendes kleines Applescript:
try
tell application "Quicksilver" to quit
end try
try
tell application "Quicksilver" to activate
end try
Das speichert man als Programm an einen beliebigen Ort, z. B. nach /Library/Scripts/Finder Scripts/Quicksilver-restart.app. Anschließend editiert man im Terminal die Crontab:
crontab -e
Wenn man nichts verändert hat, erscheint die Crontab im Vi-Editor. Dort trägt man ein:
0 */4 * * * /usr/bin/open "/Library/Scripts/Finder Scripts/Quicksilver-restart.app"
Anschließend die Escape-Taste drücken, dann nur noch :wq eingeben (damit wird gespeichert und Vi beendet) und schon erfährt Quicksilver alle vier Stunden einen Neustart. Wollen Sie den Neustart z. B. nur alle 8 Stunden durchführen lassen, tragen Sie /8 statt /4 an die zweite Stelle der Crontab-Zeile ein.
Mehr zu Cron bei Wikipedia.
Update
Wenn der Rechner gerade viel zu tun hat, wird Quicksilver unter Umständen zwar beendet, aber nicht neu gestartet. Mit der neuen Version des Scripts wird so lange mit dem Start gewartet, bis Quicksilver wirklich beendet ist:
try
tell application "Quicksilver" to quit
end try
set beendet to false
tell application "Finder"
repeat until beendet = true
set theApps to name of (every process)
if theApps contains "Quicksilver" then
set beendet to false
else
set beendet to true
tell application "Quicksilver" to activate
end if
end repeat
end tellDid you enjoy this article?
Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.