J'ai un script shell qui démarre une session ssh à un hôte distant et canalise la sortie à un autre, script local, comme ceci:signaux Forwarding à l'enfant traite
#!/bin/sh
ssh [email protected] 'while true ; do get-info ; sleep 1 ; done' | awk -f parse-info.awk
Il fonctionne très bien. Je le lance sous le programme 'supervise' de daemonools de djb. Le seul problème est d'arrêter le démon. Si je termine le processus pour ce script shell, les processus ssh et awk continuent à fonctionner en tant que orphelins. Normalement, je voudrais résoudre ce problème avec exec
pour remplacer le processus shell de supervision, mais les deux processus s'exécutent dans leurs propres sous-cases et ne peuvent pas remplacer le processus shell. Ce que je voudrais faire, c'est faire en sorte que le script shell superviseur transmette tous les signaux qu'il reçoit à au moins un des processus enfants, afin que je puisse rompre le tuyau et fermer proprement. Y a-t-il un moyen facile de faire ceci?