Как я завершаю работу системы после того, как конкретный процесс выйдет

Когда мы столкнулись с этим, наш резидентный гений оперативников сузил поиск до медленного LDAP-сервера. Краткосрочным исправлением было удаление проблемного LDAP-сервера из файла /etc/ldap.conf.

.
1
20.05.2014, 01:08
3 ответа
[1132076]Вот. протестировано и работает.

1
27.01.2020, 23:38
[1132296] Этот однолайновый цикл проверяет вывод ps для процесса с идентификатором 1001 и спит 2 секунды, затем снова проверяет, пока не найдет его (процесс вышел из процесса), после чего цикл завершается и переходит к следующей команде - завершению работы. [12200] пока [[ $(ps 1001 &> /dev/null)$? -eq 0 ]]; do sleep 2 ;done && shutdown -h now[12201] Если вы хотите убедиться, что процесс 1001 - это тот процесс, о котором вы подумали, вы можете добавить grep для проверки, например, если процесс должен быть iTunes, вы можете сделать:[12202] пока [[ $(ps 1001 |grep -q "iTunes" &> /dev/null)$? -eq 0 ]] ; do sleep 2 ;done && shutdown -h now[12203]
1
27.01.2020, 23:38
[1132282] Выполните следующие команды: [12195] Используя [1132863] kill -0 [1132864] не посылает действительного сигнала, но сообщает об истинности во время выполнения заданного процесса. Переадресация [1132865]&>[1132866] идет в [1132867]/dev/null[1132868] (bit-bucket), поэтому любые ошибки или сообщения об успешности не будут включены в вывод Вашей программы. При этом будет усыплена десятая часть секунды, и процесс будет проверяться до тех пор, пока не перестанет выполняться, после чего будет выполнено выключение питания [1132869]/dev/null[1132870].[1132285].
0
27.01.2020, 23:38

Теги

Похожие вопросы