LINUX.ORG.RU

Ответ на: комментарий от ddos3

Это принудительное завершение по истечению времени sleep как я понимаю? А как сделать так, чтобы именно в случае тупняка скрипт себя завершал?

dvrts ★★★
()
Ответ на: комментарий от dvrts

Это принудительное завершение по истечению времени sleep как я понимаю?

именно и код завершения у меня 143, как я понимаю его выставляет kill, так как он последняя исполненная команда

Yur4eg ★★
() автор топика
Ответ на: комментарий от dvrts

А как сделать так, чтобы именно в случае тупняка скрипт себя завершал?

что значит «тупняк»?

exit 0

нет. Там запускается ещё один процесс, который сначала ждёт 60с, а потом посылает основному процессу SIGTERM=15. Потому основной процесс прерывается с кодом 128+15=143.

Если ты хочешь код 0(зачем?), то ты можешь свой обработчик сигналов сделать.

emulek
()
Ответ на: комментарий от Yur4eg

его выставляет kill

нет. kill ничего не выставляет, это вообще другой процесс. Все процессы по умолчанию прерываются с кодом 128+σ, где σ это код сигнала, который можно узнать командой kill -l.

Если ты будешь прерывать CTRL+C, код будет 130=128+2, а сигнал SIGINT.

emulek
()
Ответ на: комментарий от dvrts

Это принудительное завершение по истечению времени sleep как я понимаю? А как сделать так, чтобы именно в случае тупняка скрипт себя завершал?

Ты должен сам знать, в каком месте скрипта происходит зависание, и исполнять этот кусок в отдельном процессе. Основной процесс должен отслеживать выполнение кода в дочернем. И, например, по таймауту, убивать дочерний процесс.

Black_Shadow ★★★★★
()
Ответ на: комментарий от x3al

ну это уже я не знаю. Что там ТС хотел добиться, он толком не объяснил.

ИМХО его главная проблема в том, что он затупил дать объяснения термину «скрипт затупил».

В любом случае, этот «затупляющий скрипт» нужно дочерним процессом делать. Как тут выше уже сказали: таймаут в скрипте (комментарий)

emulek
()
Ответ на: комментарий от Black_Shadow

Ты должен сам знать, в каком месте скрипта происходит зависание, и исполнять этот кусок в отдельном процессе. Основной процесс должен отслеживать выполнение кода в дочернем. И, например, по таймауту, убивать дочерний процесс.

Я примерно знаю что где это место. Это init.d скрипт corosync и он на команде stop иногда залипает, вот и родилась идея сделать ему принудительный таймаут.

Yur4eg ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.