O Trap não captura o SIGTERM no script filho

2

Eu tenho dois scripts. O primeiro é basicamente o wrapper que chama subscript e define o tempo limite.

#!/bin/bash
# wrapper_script

timeout --signal=SIGTERM 50 main_script.sh

E se a execução do main_script.sh demorar mais de 50 s, estou tentando capturar o SIGTERM

#!/bin/bash
# main_script.sh

trap "echo 'Reached time limit'; rm $log_file; exit" SIGHUP SIGINT SIGTERM

Nunca recebo a mensagem "Limite de tempo atingido" impressa, o script filho é eliminado, mas não detecta SIGTERM. Eu sinto falta de algo?

    
por Rokas.ma 03.10.2017 / 11:39

1 resposta

0

Pelo menos no exemplo que você forneceu, seu main_script.sh irá sair imediatamente após a declaração de interceptação. Se eu adicionar while :; do :; done ao final de seu main_script.sh eu recebo o "limite de tempo atingido"

    
por 03.10.2017 / 17:26