je veux trapper le signal 15 dans un script bash.
J'utilise:
trap 'echo touche' 15
cela fonctionne bien, mais pas comme je le souhaite.
admettons:
#! /bin/bash
trap 'echo touche' 15
sleep 120
si j'envoie un sig 15 au script, l'affichage de "touche" n'apparait
qu'a la fin du script.
comment faire pour que le trap s'execute des que le signal 15 est
envoye?
mon cas concerne le lancement d'un calcul tres long. Je dois trapper le
signal 15 envoye au script shell pour envoyer un sigUSR1 au programme
de calcul.
La ca va poser probleme, car le sigUSR1 sera envoye lorsque le calcul
sera fini.
Je me trompe? Il y a une methode pour executer directement le trap?
je veux trapper le signal 15 dans un script bash. J'utilise:
trap 'echo touche' 15
cela fonctionne bien, mais pas comme je le souhaite.
admettons:
#! /bin/bash trap 'echo touche' 15 sleep 120
si j'envoie un sig 15 au script, l'affichage de "touche" n'apparait qu'a la fin du script. [...]
A la fin de sleep plutot qu'a la fin du script.
#! /bin/sh ( trap '' TERM # ignore TERM exec sleep 120 ) & sleep_pid=$!
trap ' echo touche kill -USR1 "$sleep_pid" ' TERM
wait
-- Stephane
octane
#! /bin/sh ( trap '' TERM # ignore TERM
Je ne suis pas sur de vraiment comprendre ce premier trap (?) c'est pour etre sur que le signal 15 ne sera pas pris par la commande de la ligne suivante, ou il y a une autre ruse?
exec sleep 120 ) & sleep_pid=$!
trap ' echo touche kill -USR1 "$sleep_pid" ' TERM
wait
merci.
#! /bin/sh
(
trap '' TERM # ignore TERM
Je ne suis pas sur de vraiment comprendre ce premier trap (?) c'est
pour etre sur que le signal 15 ne sera pas pris par la commande de la
ligne suivante, ou il y a une autre ruse?
Je ne suis pas sur de vraiment comprendre ce premier trap (?) c'est pour etre sur que le signal 15 ne sera pas pris par la commande de la ligne suivante, ou il y a une autre ruse?
exec sleep 120 ) & sleep_pid=$!
trap ' echo touche kill -USR1 "$sleep_pid" ' TERM
wait
merci.
Stephane Chazelas
On 25 Sep 2006 09:27:05 -0700, wrote:
#! /bin/sh ( trap '' TERM # ignore TERM
Je ne suis pas sur de vraiment comprendre ce premier trap (?) c'est pour etre sur que le signal 15 ne sera pas pris par la commande de la ligne suivante, ou il y a une autre ruse? [...]
Oui, c'est ca, pour que le TERM ne soit recu que par le shell. Par exemple si tu killes tout le process group au lieu de just le pid du script.
-- Stephane
On 25 Sep 2006 09:27:05 -0700, octane@alinto.com wrote:
#! /bin/sh
(
trap '' TERM # ignore TERM
Je ne suis pas sur de vraiment comprendre ce premier trap (?) c'est
pour etre sur que le signal 15 ne sera pas pris par la commande de la
ligne suivante, ou il y a une autre ruse?
[...]
Oui, c'est ca, pour que le TERM ne soit recu que par le shell.
Par exemple si tu killes tout le process group au lieu de just
le pid du script.
Je ne suis pas sur de vraiment comprendre ce premier trap (?) c'est pour etre sur que le signal 15 ne sera pas pris par la commande de la ligne suivante, ou il y a une autre ruse? [...]
Oui, c'est ca, pour que le TERM ne soit recu que par le shell. Par exemple si tu killes tout le process group au lieu de just le pid du script.