Почему моя ловушка не работает?
Я написал ниже сценарий:
#!/bin/bash
sleep 15
function_signalr()
{
date
date | awk '{printf "%-15s\n", $2}'
}
trap "function_signalr" 10
Когда я запускаю процесс с помощью "process &", он запускается, предоставляется PID. Я убиваю -10 PID, но моя ловушка не работает. Процесс убит, но ловушка не возникла. Дата сообщения не дается. Буду благодарен за любые советы.
1 ответ
Ваш trap
не работает, потому что оболочка еще не знает об этом.
Вы должны определить trap
функция, установите trap
а затем напишите свой код.
#!/bin/bash
function_signalr()
{
date
date | awk '{printf "%-15s\n", $2}'
}
trap "function_signalr" 10
# Code follows now
sleep 15
Кроме того, обратите внимание, что sleep
блокировка, которая подразумевает, что если вы делаете kill -10 PID
тогда trap
не будет выполняться до sleep
готово.