Почему моя ловушка не работает?

Я написал ниже сценарий:

#!/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 готово.

Другие вопросы по тегам