問題タブ [spawn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 子プロセスからのメッセージをPythonでstderrとstdoutを介して処理する
私のPythonコードは子プロセスを生成し、stdoutとstderrの両方のメッセージを出力します。別の方法で印刷する必要があります。
子プロセスを生成し、そこからstdoutの結果を取得するための次のコードがあります。
子プロセスがstderrを介してメッセージを出力するかどうかを確認するために、コードを変更するにはどうすればよいですか?
追加した
子プロセスが何かを出力したらすぐに、stderrとstdoutを印刷する必要があります。また、クロスプラットフォームの実装であるため、Mac / Linux/PCで実行する必要があります。
mpi - MPI_Comm_spawn が MSMPI で失敗する
MPI_Comm_spawn を使用して 2 番目のプロセスを開始しようとしています。デモンストレーション目的のためだけに。プログラムは非常に単純です。
child.exe は、コンパイルされたプログラムと同じディレクトリにあり、非常に単純です。
親プロセスが重大なエラーで失敗します: C:\Users.....\Documents\Visual Studio 2010\Projects\mpi\x64\Release>mpi.exe I'm process 0 and we are 1
ジョブが中止されました: [ranks] メッセージ
[0] 致命的なエラー MPI_Comm_spawn の致命的なエラー: その他の MPI エラー、エラー スタック: MPI_Comm_spawn(106)..........: MPI_Comm_spawn(cmd="child.exe", argv=0x0000000000 000000, maxprocs=2 , MPI_INFO_NULL, root=0, MPI_COMM_WORLD, intercomm=0x000000000 026FC20, errors=0x0000000000000000) 失敗 MPID_Comm_spawn_multiple(314): 関数が実装されていません
私が間違っていること....とても単純に思えます....MSMPIはMPI_Comm_spawnを実装していませんか?
node.js - node.js で子プロセスを生成する際のエラー
少し ffmpeg コンバーター サービスを起動して実行しようとしていますが、これまでのところかなりの進歩を遂げています。しかし、変換のために実際の ffmpeg プロセスを生成することになると、私はレンガの壁にぶつかっています。
このコードを実行すると、次のコンソール出力が得られます。
すでにさまざまなノード バージョン (0.4.0、0.4.2、および 0.5.0-pre) をチェックしましたが、何の効果もありませんでした。
'ffmpeg '
もう 1 つの非常に奇妙な動作は、(単に ではなく)スペースを含む spawn を呼び出さなければならないという事実です'ffmpeg'
。このスペースを省略すると、別のエラーが発生します ( stderr: "/path/to/my/movie.mpeg": no such file or directory
)。シェルから直接 ffmpeg を呼び出すと、 child_process.spawn() に送信されたコマンドは問題なく実行されます。
そのヒントはありますか?同じことを達成する他のプロジェクトをすでにチェックしました(node-imagemagickやffmpeg-nodeなどですが、啓発は私を襲いませんでした...
更新: strace() 出力
を使用してアプリケーションを実行するstrace -fF -o strace.log node server.js
と、次のプロセス生成呼び出しを grep できます。
パスで奇妙にエスケープされた二重引用符を見た後、引用符なしで ffmpeg を呼び出そうとしました...魅力のように機能しました。しかし、問題は残ります。パスにスペースを使用できるようにする必要があります。
助言がありますか?
更新: 解決策
スペースで動作するようになりました。単純なinputfile.replace(' ', '\ ')
もので十分でした。
git - githubの特定のフォークにそのようなファイルやディレクトリを生成できません
問題はこのフォーク/リポジトリにあります: https ://github.com/RubenWillems/CCNet
同じラップトップで他のフォークを入手できますが、これは入手できません。sshで試してみると同じ問題が発生します。
フォークのセキュリティ設定の問題が疑われますが、わかりません。
これに取り組む(始める)方法についてのアイデアは、私はgitにまったく慣れていません。
c - spawn() の後に _exit() または exit() を使用していますか?
ウィキペディアがここで述べているように、「スポーン呼び出しが行われたときに開いているファイルは、子プロセスで開いたままになります」。( exec()に非常に似ています)
OK、OSはいくつかのファイルを開いたままにし、新しく生まれた無意識のプロセスの準備を整えました。プロセスが以前に開いたファイルを認識せず、最終的に終了することを決定したと仮定します。一方、C などのプログラミング言語では、終了前に内部プロセスのクリーンアップが必要です。
私の質問は、この種のクリーンアップは、開いているファイルに何らかの影響を与えますか? 私の知る限り、それらはプロセス自体のどこにも登録されていません。
答えは、spawn() されたプロセス (または exec() されたプロセス) を終了するときのプログラマーの動作を何らかの方法で定義する必要があります。完全なクリーンアップ手順は、何らかの形で親に害を及ぼす可能性がありますか? (たとえば、一時ファイルを削除することによって) したがって、プログラマーはexit( )の代わりに_exit()を使用すべきではありませんか?
python - 別の Python プロセスを生成するにはどうすればよいですか?
サブスクリプトを実行する別の python プロセスを生成する必要があります。
例えば:
main.py が実行され、出力がコンソールに出力されます。次に、新しいプロセスを開始する sub.py を生成します。main.py が sub.py を生成したら、sub.py の実行中に終了する必要があります。
ありがとうございました。
編集:
main.py を実行すると、「main.py」が出力されますが、他には何も出力されず、sub.py は起動しません。
main.py
sub.py
linux - linux: 起動時にプロセスをサスペンドするようにしました
おそらく別のユーザーのコンテキストで(たとえば、sudo -u ...を介して)中断されたプロセスを生成し、生成されたプロセスにいくつかのiptablesルールを設定し、プロセスの実行を継続し、プロセスが停止したときにiptableルールを削除したいと思います存在します。
上記を達成できる標準的な手段(bash、corutilsなど)はありますか?特に、サスペンド状態のプロセスを生成し、その pid を取得するにはどうすればよいですか?
erlang - Erlangstartgen_serverブロックされたコード
erlangコードにgen_serverがあります。そして、私がそれを実行しようとすると、この後の次のコードは機能しません。例えば:
現在、io:format/1は機能しません。そして、spawnを使用してgen_serverを実行すると、次のようになります。
これでio:formatが機能しました。なんで?
ありがとうございました。
java - Maven プラグインで fork と spawn を設定する
ビルドファイルをantからmavenプラグインに変換しています。Maven プラグインでデータベース (hsqldb) を開始/停止しようとしています。
データベースの起動に成功しました。しかし、プラグインが実行されると、プラグインはデータベースを停止すると考えています。データベースは実行後も実行を続けるはずですが、すぐに停止するようです。
私たちの推測では、'fork' および 'spawn' 属性を使用する必要があります (これらは ant の build.xml にもあります) が、DatabaseController (これはAbstractMojo から拡張されています)。
何か案は?
hsqldb を使用しています。これを初期化するコードは次のとおりです。
プラグインを実行すると、データベースが起動し、テーブルを作成してデータを書き込むことさえできました。その後、プラグインが停止し、サーバーも自動的に停止します。
サーバーを停止する別のプラグインを実行すると、次の行で常に nullPointerException が発生します。
敬具、
ジェローン