como interceptar suspender um currículo de um script bash

2

Eu tenho um script bash (no osx) rodando continuamente, ele atualmente intercepta e manipula um final assim

trap onshutdown TERM

como posso fazer o trap também lidar com suspender / retomar como

trap onsuspend ?

trap onresume ?

    
por Pradeep 17.04.2011 / 08:23

2 respostas

3

Você está procurando sinais SIGTSTP e SIGCONT. Tente isto:

trap onsuspend TSTP
trap onresume  CONT
    
por 17.04.2011 / 10:46
0

Como o programa é simplesmente suspenso e não é confiável, em vez disso, eu configuro um pipe nomeado e gero um script sentinela.

Ele faria um loop a cada 5 ou 15 minutos, gravando o registro de data e hora atual no canal nomeado e depois suspenso.

Você poderia então ler daquele tubo e fazer as contas entre as leituras - se o tempo pular mais do que um ou dois pings, então você dormiu.

Dependendo de quão preciso você precisa, você pode seguir o arquivo /private/var/log/system.log (e potencialmente /private/var/log/system.0.log.gz) para o último sono / wake times registrados pelo kernel.

Vai ser mais trabalho do que depender de sinais. Você também pode fazer o auxiliar rodar e enviar o sinal que quiser para o seu script.

Seis de uma meia dúzia do outro.

    
por 07.07.2011 / 04:24