Я записал сценарий, который должен уничтожить застрявшие процессы. Сначала, это пробует самый слабый SIGTERM, если это не работает, это пробует SIGHUP, и если даже, который не помогает, это сделает SIGKILL. Теперь я хочу попробовать если эта работа сценария практически.
Как я могу сделать процесс застрявшим или создал затор, таким образом, это может быть stoppable только, ПОНУКАЮТ или Сигнал уничтожения?
Вероятно, самый простой путь состоял бы в том, чтобы записать минимальный сценарий удара, с помощью встроенного trap
для определения пользовательского обработчика сигналов:
#!/bin/bash
function mysighandler {
printf 'ignoring TERM signal\n'
}
trap mysighandler SIGTERM
while :
do
printf 'Running. . .\n'
sleep 2
done
Вы могли установить обработчик на пустую строку, которая заставит сигнал быть проигнорированным тихо - но создание минимального обработчика позволяет Вам подтверждать, что это было прервано.
, С другой стороны, пишут маленькую программу C, которая использует signal
, API - видит man 2 signal
.