Vincent Lefevre a écrit :
On 2006-02-17 09:52:25 +0100, Christophe Martin wrote:
En general j'utilise ca : placer artificiellement le shell en mode attente de signal (un SIGCHLD ici). Du coup il reagit immediatement a tout signal. J'ai pas verifie la POSIX conformance.
echo $$ { while : ; do sleep 1000 ; done ; } & trap 'echo gnarf gnarf ; exit 0' USR1 wait
dans un autre shell : kill -USR1 pid-du-shell
Ça m'étonnerait que ce soit conforme à POSIX. Ça fonctionne avec bash 2.05b, mais POSIX ne dit pas que wait peut être interrompu par un signal trappé (en tout cas pas sous la description de "wait"). Ne serait-ce pas un bug de bash? ca marche aussi avec dash, et solaris ksh... bug ou feature va savoir.
Et ça ne fonctionne pas avec zsh 4.2.6.
bon a mettre dans le tiroirs des pas portables donc. sinon y'a moins bien mais c'est plus cher (en CPU et temps de reponse) trap 'exit 0' USR1 while : do sleep 1 ; done sinon....