wmctrl - дождаться закрытия окна

wmctrl - дождаться закрытия окна

Я использую wmctrl для закрытия запущенных окон, когда хочу выключить компьютер. Это потому, что мне нужно сохранить рабочее пространство в Eclipse, а также я не хочу терять открытые вкладки в Chrome. Я написал небольшой скрипт, который выполняет эту задачу, но он не идеален. Иногда окна не закрываются корректно, поэтому я теряю свои вкладки или изменения в исходном коде. Есть ли способ заставить wmctrl ждать, пока окно не закроется? Мой скрипт теперь зависит от 3-секундного сна (проблемная строка), но это, очевидно, не лучшее решение.

wmctrl -c chrome 
wmctrl -c eclipse 
sleep 3 
poweroff

решение1

Вы задаете неправильный вопрос. Вам следует ждать не закрытия окна, а завершения процесса.

К счастью, на этот вопрос ответить проще.

while [ -n "$(pidof chrome eclipse)" ]; do
  sleep 1
done

Связанный контент