Я имею продолжительную команду и забыл добавлять && shutdown
к нему. Там какой-либо путь состоит в том, чтобы закрыть мой ПК после своего завершения, в то время как он работает?
Сначала найдите соответствующий pid с pgrep
, затем выполненный:
while kill -0 pid; do sleep 5; done; shutdown
Из страницы справочника kill
:
Если сигнал 0, то никакой фактический сигнал не отправляется, но проверка ошибок все еще выполняется.
Так условие цикла с условием продолжения остаются верными до той оконечной команды.
Этот цикл с условием продолжения проверит если command
имеет любые рабочие процессы каждые 10 секунд в фоновом режиме и если это не находит, что любой запускает количество завершения работы +5 минут, с которыми можно отменить shutdown -c
$ while true; do \
(($(pgrep -c command) > 0)) && \
sleep 10 || { shutdown +5; exit 0; }; done &