2009-12-07 3 views
3

Je dois exécuter et terminer/abandonner différents scripts shell depuis Java (> = 1.5; ProcessBuilder). Avec les mécanismes java standard, je ne peux que tuer le processus principal utilisé pour l'exécution du script shell. Lorsque ce script shell démarre d'autres processus (par exemple ./foo.sh &; ./bar.sh &), les processus sont toujours en cours lorsque je termine/abandonne le processus de script shell principal dans Java.Suivre les identifiants de processus de sous-processus/enfants?

Comment puis-je effectuer le suivi de tous les ID de tous les nouveaux sous-processus/processus enfants depuis Java? Y a-t-il un moyen de le faire? Ou est-ce possible (dans * nix- et Win-OS) de trouver tous les processus produits par un processus connu?

Merci, Thomas

Répondre

1

Si vous avez le contrôle des différents scripts, vous pouvez passer le PID de leurs enfants (utilisez $! Pour trouver le PID du dernier processus d'arrière-plan d'exécution) Retour au programme principal de Java . Cela semble être une manière assez propre de vous donner ce dont vous avez besoin.

Sinon, this seems rather promising.

Questions connexes