2017-03-27 5 views
0

私はWindows上でいくつかのツールを書いています。それらは一般的に「コマンドシム」です。つまり、彼らは一度何らかの作業をした後、Unixのexecファミリの機能の1つを使って別のプログラムを実行します。Windows上で実行可能なシム(または「どこに私のexec()がありますか?」)

例では、shushのような環境変数の束を設定します。それはのように使用することができます。envのVARSオーバー

export KMS_ENCRYPTED_MOO=<base64str...> shush exec -- env

shushプログラム反復し、AWS KMSを使用して接頭辞KMS_ENCRYPTED_を持つ変数を復号化の継続的な実行前に復号化された値を使用して新しい環境変数(サンセリフ接頭辞)を設定envプログラム

Windowsでこれを行うにはどうすればよいですか?私の理解では、WindowsのCreateProcess機能は融合したforkexecの* nixに相当しますが、後者の機能だけが必要です。私は子プロセスを作成し、stdin、stdout、stderrを子プロセスに転送できることを知っていますが、Windowsの信号と同じように扱わなければならず、私のような初心者にとって危険に満ちているようです。

+0

Windowsにはシグナルがありません。子プロセスを作成することは正しい(そして実際は唯一の)オプションです。 –

+0

可能な重複:http://stackoverflow.com/questions/37528300/createprocess-usage-for-executable-wrapper-for-windows –

答えて

0

ちょうど私の運。 「

CreateProcess usage for executable wrapper for Windows?

は、いずれかを処理するために、この十分なものである:私は無駄に数週間のためにオンとオフこれをグーグルでてきたと、すぐに私はこの質問を投稿し、私はトリックを行うように見えるものを渡ってつまずくことに成功しますシグナル "とそれ以外のもの?私が知っておくべきあらゆる縁のケース?私は子供が自己終了する前に終了し、終了コードを通過するのを待つ必要があると思います。

関連する問題