2016-09-15 1 views
2

J'ai quelques doutes sur la fin du processus. Mon cas d'utilisation est telle queEst-ce que le script shell invoqué par Java est tué lorsque le processus Java est tué?

  1. processus Java appelle un processus de script shell par Process Builder
  2. Le script shell appelle un nouveau processus x

Est-ce que process.destroy() en java tuer aussi traiter x avec un script shell?

Que se passe lorsque le processus Java est tué alors que x est en cours d'exécution? Est-ce que le processus de script shell et le processus x sont tous les deux supprimés?

Répondre

3

Il n'y a aucun lien entre un processus enfant et son parent.

Les deux processus peuvent se connaître les uns les autres, mais il n'y a pas de lien entre eux.

Généralement, ce qui arrive aux enfants d'un processus quand il est tué dépend de la plateforme, il n'y a donc aucune garantie que lorsque vous tuez un processus créé à partir de Java, les enfants de ce processus seront également tués. De plus, vous pouvez avoir un comportement différent sur différents systèmes d'exploitation.

+0

Ainsi, il pourrait y avoir une possibilité que seul le processus Java soit tué, mais le script ne le fait pas dans quelques cas (basé sur le système d'exploitation) ... Est-ce vrai? – lsof

+0

Oui, cela dépend de la façon dont le système d'exploitation gère la destruction d'un processus. –

+0

Alors, comment pourrions-nous tuer le processus (comme script shell) appelé à partir d'autres processus comme Java .. – lsof