問題タブ [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.
node.js - nodejs:長いコマンドを数回実行します
3 回実行する必要があるコマンドがあります。stdout に大量の出力が生成され、約 1 分かかります。3 つのコマンドが終了したら、4 番目の (別の) コマンドを実行する必要があります。シェル スクリプトは次のようになります。
ループで使用することを考えてchild_process.exec()
いましたが、それは終了するまで stdout をバッファリングします (右?)。ユーザーにすぐにフィードバックを提供する必要があるため、stdout を 1 秒以上バッファリングすることはお勧めできません。だから私は使用する必要がありますchild_process.spawn()
が、非同期処理は私を少し狂わせます。spawn 呼び出しを次のような関数に入れることを考えていました。
これはうまくいくと思います。しかし、より良い方法はありますか?私は UNIX システムとおそらく Windows システムを使用しています。
cocos2d-iphone - CCSequence like CCSpawn use functions from different classes
I try to use a few functions in my GameLayer. First - from another class, second - from GameLayer class, but CCSequence run like CCSpawn, not sequence. Separately they both work perfect in GameLayer.
in GameLayer
in rolypoly class
node.js - Node.jsでプロセスを生成する正しい構文は何ですか?
私は一緒にフォローしようとしています
http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
しようとする努力の中で
私が試してみました
しかし、次のエラーが表示されます
私は何を間違っていますか?
shell - MakeFile でバックグラウンド プロセスの終了コードをリッスンする
解決済み MakeFile でバックグラウンド プロセスを生成し、それらの終了コードも考慮する必要があります。シナリオ:
- いくつかのプロセスがバックグラウンドで生成されます。
- MakeFile は評価を続行します (また、生成されたプロセスの PID をいくつかのループでチェックしたくないなど)
- 一部のプロセスはゼロ以外の終了コードで終了します
- make ユーティリティはゼロ以外の終了コードで終了します
当然、command &
バックグラウンドでプロセスを生成するために使用することを検討しています。
問題:コマンドが次のように指定されている場合command &
、make プロセスはその終了コードを追跡しません。
サンプル1
サンプル 2
サンプル 1 は、make ユーティリティがバックグラウンド プロセスの終了コードを考慮しないことを示しています。
PS 生成されたプロセスの PID を保存したり、sleep
遅延を伴うループでそれらをチェックしたりすることはお勧めしません。MakeFile の評価を続行し、ゼロ以外のコードで自動的に終了する必要があります。
解決
したがって、バックグラウンド プロセスの終了ステータスを処理する一連のコマンドを作成できます。
python - ツイストPython:実行中の生成されたプロセスに書き込めません
私の質問は、プロセスを生成した後、子プロセスがそのstdinからデータを取得するためにループしているということです。Echo.Process.pipes [0] .write(data)またはEcho.Process.writeToChild(0、data)のいずれかを使用して新しいデータを書き込みたいのですが、どちらも機能しません。誰かが何が起こっているのか説明しますか?または、この問題を回避するにはどうすればよいですか?
これは私が得たエラーです:
ありがとうございました、
Q
java - PTYを使用してScalaでプロセスを生成する方法は?
ルビーで私は持っています:
これはscala/javaでどのように行いますか?
c - Windows の生成プロセスがエラー STATUS_SXS_ASSEMBLY_NOT_FOUND をトリガーすることがあるのはなぜですか?
だから、私はWindowsボックスで実行されているCコードの小さな断片を持っています。
私の「コマンド」が C:\windows\system32\ipconfig.exe であるこの周りにいくつかの単体テストを書きましたが、問題なく動作します。
アプリケーションランチャーに使用しようとしました... doo doo。役に立つエラーで失敗しました:
わかりました...周りを検索すると、エラー コードが STATUS_SXS_ASSEMBLY_NOT_FOUND であることがわかりました。これは、notepad.exe を起動しようとしたときにも発生します。アセンブリがありませんか?
なぜこうなった?
どうすれば回避できますか?
ここで推測しているだけですが、_spawnve() で PATH 変数を設定する必要があることと関係があると思われますが、それがどうあるべきかわかりません。パスを渡そうとしましたが、それは役に立たないようです。このコードの実行:
収量:
すなわち。argv[0] とパス値を渡しています。他の環境変数や引数ではありません。
何か案は?
--
編集:
したがって、_spawnve() を使用してコマンドを呼び出したときに PATH が正しく設定されていないために、このエラーが発生しているようです。
これは、_spawnv() または _spawnvpe() のいずれかを呼び出すことで明らかになり、どちらも正しく動作しているように見えます。
ただし、アプリケーションの実行時に追加の PATH コンポーネントを指定する必要があるため、これはあまり役に立ちません。PATH=... を _spawnvpe() に渡すと同じエラーが発生し、PATH を指定できないため、明らかに _spawnv は使用されません。
つまり、この質問に対する答えは次のとおりです。PATH 変数が間違っているからです。
...しかし、私はまだそれがどうあるべきか分かりません。私がどこでも見つけることができるこれの実例はないようです。_spawnve() または _spawnvpe() を使用して PATH 変数を渡す (そして動作する) コーディングの例にリンクする回答を受け入れます。
編集#2:
本当。いいえ、実際には、これは機能しません。これが機能しない例です。機能する例へのリンクを忘れてください。私の例を変更して、1) PATH で渡され、2) エラーなしで実行される diff を投稿するだけです。
注意 それが機能するのを見たいですか?_spawnv() に変更するか、env 値を NULL にすると、問題なく動作します。
出力:
expect - expect コマンドが bash スクリプトで機能しない
私は期待に関連する問題を抱えています。
次の行を含むabc.shを実行すると
その作品はうまくいきます
しかし、実行中のスクリプトで同様のコードを使用すると機能しません
それはエラーを与える
./script.sh: 62 行目: 予期しないトークン付近の構文エラー}'
./script.sh: line 62:
}'
スクリプトの先頭に #!/usr/bin/expect を含めていないことが原因だと思いますが、これを使用してスクリプトを実行すると、何も実行されず、実行後にすべてのコードが端末に表示されます。#!/usr/bin/expect と #!/bin/bash を同時にインクルードできますか?
よろしく、 アディティア
c - カスタムPATH値で_spawnvpe()を使用するにはどうすればよいですか?
私は(http://stackoverflow.com/questions/10969488/why-does-windows-spawn-process-sometimes-trigger-error-status-sxs-assembly-not-f)で関連する質問をしましたが、私は質問の複雑さに混乱することを恐れているので、ここに非常に単純なバージョンがあります:
_spawnvpeを呼び出して、PATH値を手動で渡す例を次に示します。
動作しません。エラーが発生し、メモ帳は実行されません。
_spawnvに変更するか、PATH値を渡さないと、機能します。ただし、_putenvのドキュメントには、env値の形式がKEY=VALUEであることが明確に記載されています。
どうすればそれを機能させることができますか?
具体的に、修正を含む以下のコードの差分または完全なコピーを提供してください。
ruby-on-rails - Railsアプリ:分岐後にジャガーノートredisを再接続しますか?
Juggernautを使用して一定の間隔でデータをクライアントにプッシュする Rails アプリに取り組んでいます。コントローラー アクションを使用してプッシュを開始します。しかし、プッシュは長いプロセス (10 分以上) になることが多いため、spawn を使用してタスクをフォークしています。例えば:
問題は、start_pushing アクションを実行すると、ログ ファイルに次のエラーが表示されることです。
そこで、問題が解決することを期待して、spawn_block 内に次を追加しました。
$redisをリセットするためにこれを追加する前でも、アクションは断続的に機能していましたが、修正されていないようです。おそらく $redis をリセットしても何も起こらないと思います。Juggernaut はまだ古い接続にアクセスしています。それはありそうですか?Juggernaut が新しい Redis 接続を使用していることを確認するにはどうすればよいですか?
私が説明していることについて質問があれば教えてください。私は今立ち往生しているので、助けに感謝します。