CreateProcess ، العملية لا تنتهي عند إعادة توجيه الأمراض المنقولة جنسيا/في/err

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

  •  24-09-2019
  •  | 
  •  

سؤال

أحاول استخدام CreateProcess لإطلاق نص PowerShell من داخل طلبي.

لقد استخدمت مثال Microsoft (http://msdn.microsoft.com/en-us/library/ms682499(vs.85).aspx) لإنشاء عملية الطفل وإعادة توجيه المعيار/in/err/err.

المشكلة الوحيدة المتبقية لحلها هي السبب في أن عملية الطفل (PowerShell) لا تنتهي بعد تنفيذ الأمر.

إذا قمت بتنفيذ عملية PowerShell (مع الأمر) cmd.exe ، فإنها تنفذ وتخرج ، مع إغلاق العملية.

الطريقة الوحيدة لإغلاق عملية PowerShell في الوقت الحالي هي تشغيل TerminateProcess على المقبض ، ولكن هذا يبدو وكأنه الملاذ الأخير.

هل كانت مفيدة؟

المحلول

هل والديك يقرأ stdout الطفل بالكامل؟ إذا لم تقرأ كل شيء ، فأعتقد أن الطفل سوف يعلق. أيضًا ، إذا كان البرنامج النصي يتوقع إدخالًا ، فسيتعين عليك كتابة شيء إلى stdin للطفل وإلا فإنه سيتم تعليقه. يمكنك إرفاق Windbg بالطفل ومعرفة أين هو معلق ؛ ربما سيعطيك فكرة عن مكان النظر.

نصائح أخرى

في Linux إذا لم يتم إعادة توجيه الإخراج بالكامل وقتل عملية الوالدين ، يتم قتل عملية الطفل أيضًا. لذلك يمكنك التحقق من وثائق Windows التي تشير إلى إعادة ترتيب عملية الطفل عندما يتم قتل الوالد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top