
Я использую wmctrl для закрытия запущенных окон, когда хочу выключить компьютер. Это потому, что мне нужно сохранить рабочее пространство в Eclipse, а также я не хочу терять открытые вкладки в Chrome. Я написал небольшой скрипт, который выполняет эту задачу, но он не идеален. Иногда окна не закрываются корректно, поэтому я теряю свои вкладки или изменения в исходном коде. Есть ли способ заставить wmctrl ждать, пока окно не закроется? Мой скрипт теперь зависит от 3-секундного сна (проблемная строка), но это, очевидно, не лучшее решение.
wmctrl -c chrome
wmctrl -c eclipse
sleep 3
poweroff
решение1
Вы задаете неправильный вопрос. Вам следует ждать не закрытия окна, а завершения процесса.
К счастью, на этот вопрос ответить проще.
while [ -n "$(pidof chrome eclipse)" ]; do
sleep 1
done