CreateProcess, le processus ne se termine pas lors de la redirection std out / in / err

StackOverflow https://stackoverflow.com/questions/2175665

  •  24-09-2019
  •  | 
  •  

Question

Je suis en train d'utiliser CreateProcess pour lancer un script Powershell à partir de mon application.

Je l'ai utilisé l'exemple Microsoft ( http: //msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx ) pour créer le processus enfant et rediriger la sortie standard / in / tuyaux de se tromper.

La seule question laissée à résoudre est la raison pour laquelle le processus de l'enfant (Powershell) ne se termine pas après l'exécution de la commande.

Si j'exécute le processus de Powershell (avec la commande) cmd.exe et il exécute les sorties, la fermeture du processus.

La seule façon de fermer le processus de Powershell est en ce moment à courir TerminateProcess sur la poignée, mais qui se sent comme un dernier recours.

Était-ce utile?

La solution

Votre parent en train de lire le stdout de l'enfant complètement? Si vous ne lisez pas tout alors je crois que l'enfant se bloque. En outre, si le script attend une entrée, vous devrez écrire quelque chose à stdin de l'enfant ou bien il se bloque. Vous pouvez joindre windbg à l'enfant et de voir où il est suspendu; peut-être vous donner une idée de l'endroit où regarder.

Autres conseils

Dans linux si ne redirigent complètement la sortie et le processus parent est tué, le processus de l'enfant est tué aussi. Donc, vous vérifiez les fenêtres Réorganiser la documentation référent du processus enfant lorsque le parent est tué.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top