
Ich verwende wmctrl, um laufende Fenster zu schließen, wenn ich den Computer herunterfahren möchte. Das liegt daran, dass ich in Eclipse Arbeitsspeicher sparen muss und außerdem meine geöffneten Tabs in Chrome nicht verlieren möchte. Ich habe ein kleines Skript geschrieben, das dies erledigt, aber es ist nicht perfekt. Manchmal schließen sich Fenster nicht ordnungsgemäß, sodass ich meine Tabs oder Änderungen im Quellcode verliere. Gibt es eine Möglichkeit, wmctrl anzuweisen, zu warten, bis das Fenster geschlossen ist? Mein Skript hängt jetzt von 3 Sekunden Ruhezeit ab (die problematische Zeile), aber das ist offensichtlich keine gute Lösung.
wmctrl -c chrome
wmctrl -c eclipse
sleep 3
poweroff
Antwort1
Sie stellen die falsche Frage. Sie sollten nicht warten, bis das Fenster geschlossen ist, sondern bis der Prozess beendet ist.
Glücklicherweise ist diese Frage leichter zu beantworten.
while [ -n "$(pidof chrome eclipse)" ]; do
sleep 1
done