問題タブ [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.

0 投票する
1 に答える
1240 参照

python - Python: (新しいターミナルで) sudo プロセスを生成し、完了するまで待ちます

編集:私の最終的なコードは次のようになります:


元の質問:

最終的にLuaLaTeXを実行する前に、不足しているパッケージを「オンザフライ」でインストールする単純なラッパーを作成しています。ほとんどの場合は機能しますが、最後にコマンドを実行する必要があります

さらに、LaTeX エディターがユーザー入力を許可する保証はないため、ユーザーが sudo パスワードを入力できるように、これを行うために新しい端末を呼び出す必要があります。

私はほとんどこれを理解しました:どちらか

また

唯一の問題は、生成された端末プロセスが完了するまでこの行が待機しないことです。実際、ユーザーがパスワードを入力したり、パッケージをダウンロードしたりする前に、すぐに次の行 (実際の LuaLaTeX の実行) に進みます!

私が理解していることから、これは sudo 子プロセスがすぐに終了するためです。続行する前に tlmgr プロセスが終了していることを確認する方法はありますか?

0 投票する
2 に答える
624 参照

macos - ターミナルをNSTaskで起動したプロセスの新しい子プロセスに切り替えるには?

ここに記載されている方法で疑似端末を作成しました: http://lists.apple.com/archives/student-dev/2005/Mar/msg00019.html

端末自体はうまく機能しました。とにかく問題は、端末が子プロセスに切り替えられないことです。たとえば、 で起動bashし、内でNSTask実行すると自動的に停止します。ftpbash

ftpそして、 withを続けようとするとfg、静かに終了します。( Activity Monitorで確認しました)

制御を子プロセスに切り替えるには、もう少しインフラストラクチャ(疑似端末を完成させる)が必要だと思います。これを行うには何が必要ですか?

0 投票する
1 に答える
1206 参照

ruby - Process::detach と Process::wait は相互に排他的ですか (Ruby)?

Spawn を使用するために、Ruby on Rails サーバー (Linux で実行中) の並行処理を少しリファクタリングしています。Spawn::fork_itドキュメントは、分離された後も、フォークされたプロセスを待機できると主張しています: https://github.com/tra/spawn/blob/master/lib/spawn.rb (186行目):

ただし、Ruby のProcess::detachドキュメントには、これを行うべきではないと書かれています: http://www.ruby-doc.org/core/classes/Process.html

一部のオペレーティング システムは、親がそのステータスを収集するまで、終了した子プロセスのステータスを保持します (通常、wait( のバリアントを使用)。親がこのステータスを収集しない場合、子プロセスはゾンビ プロセスとして残ります。Process::detach は、終了時にプロセス pid のステータスを取得することを唯一の仕事とする個別の Ruby スレッドを設定する子プロセスの終了を明示的に待機するつもりがない場合にのみ、detach を使用してください。

しかし、Spawn::wait効果的にラップすることでそれを行うことができますProcess::waitProcess::waitpid2ちなみに、メソッドを使用する代わりに、メソッドを使用して子プロセスを待機することを特に望んでいますSpawn::wait

デタッチ アンド ウェイトは Linux で正しく動作しませんか? これにより、切り離された死神スレッドと待機中の親プロセスの間で、誰が最初に子ステータスを収集するかという競合状態が発生する可能性があることが懸念されます。

0 投票する
2 に答える
1183 参照

python - 生成されるプロセスの数を動的に計算する

year_queue には約 15 年のリストがあり、毎年 1 つのプロセスを生成する必要があります。ただし、コードを実行しているサーバーによって、プロセッサの数は異なります。サーバー内のプロセッサの数に応じて変数 num_processes を動的に変更するにはどうすればよいですか?

num_processes > プロセッサ数を設定すると、それに応じて自動的に生成されますか? これをテストすると、15 個のプロセスが作成され、CPU パワーがそれらの間で分割されます。最初に「n」個のプロセスを作成する方法を探しています。ここで、n = サーバー内のプロセッサの数です。次に、これらの各プロセスが終了すると、次のプロセスが生成されます。

誰も同じ問題を抱えていましたか?


0 投票する
1 に答える
278 参照

ruby-on-rails-3 - Heroku の Spawn gem - 「PGError: サーバーが接続を予期せず閉じました」

Rails 3 アプリで Spawn gem を使用しています。これはhttps://github.com/rfc2822/spawnにある rails3 対応のフォークです。

私のアプリはherokuにデプロイされています.spawnしようとすると、次のエラーが発生します:

spawn ドキュメントの推奨に従って、config/database.yml にこのオプションがあります。

これにつながっていると思いますか?

これで少し途方に暮れています...調査に行く前に、誰かがこれの原因を知っていますか? 乾杯、マックス

0 投票する
3 に答える
3705 参照

java - 生成されたJavaプロセスのPIDを取得するにはどうすればよいですか?

私はいくつかのJavaプログラムを作成しており、やりたいことをすべて終えたら、別のJVMで強制終了/クリーンアップする必要があります。このために、作成しているJavaプロセスのPIDを取得する必要があります。

0 投票する
1 に答える
233 参照

javascript - ルビーで出力が標準出力に出力されたときにコールバックを使用するにはどうすればよいですか

サーバーの状態を監視するためのスクリプトを書いています。コードはjavascriptで書けますが、rubyで書かなければなりません。

JavaScript では、このように node.js を使用して実行できます。

このコードは iostat コマンドを実行し、毎秒コンソールに出力します。Rubyで同じことをどのように実装できますか? つまり、stdout が ruby​​ で印刷されたときにコールバックを使用したいのです。

0 投票する
3 に答える
863 参照

node.js - コーヒースクリプトcakefileタスクが終了していません

セレンテストを実行するための次のcakefileタスクがあります。これは正常に実行され、テストの最後に到達しますが、終了しません。

タスクを終了するように指示する方法はありますか?「完了したSeleniumテスト」がコンソールに記録されます。

0 投票する
2 に答える
3316 参照

python - Python で無期限にデーモン化されたプロセスが生成される

他の完全に独立したプロセスを起動する Python デーモンを構築しようとしています。

一般的な考え方は、特定のシェルコマンドに対して、数秒ごとにポーリングし、コマンドの正確にk 個のインスタンスが実行されていることを確認することです。pidfile のディレクトリを保持し、ポーリングすると、pid が実行されなくなったpidfileを削除して起動 (および pidfile を作成)します。

子プロセスも完全に独立している必要があるため、親プロセスが停止しても子プロセスは強制終了されません。私が読んだことから、subprocessモジュールでこれを行う方法はないようです。この目的のために、ここで言及されているスニペットを使用しました。

http://code.activestate.com/recipes/66012-fork-a-daemon-process-on-unix/

いくつかの必要な変更を加えました (添付のスニペットでコメントアウトされている行が表示されます)。

  1. ランチャー デーモンを無期限に存続させる必要があるため、元の親プロセスは終了できません。
  2. 子プロセスは、親と同じ cwd で開始する必要があります。

これが私のspawn fnとテストです:

この状況では、問題なく動作しているように見え、親が強制終了されても子プロセスは存続します。ただし、元の親のスポーン制限にまだ遭遇しています。〜650回のスポーン後(同時にではなく、子プロセスが終了した後)、親プロセスは次のエラーでチョークします:

これらの独立した子プロセスを無期限に生成できるように、spawn 関数を書き直す方法はありますか? ありがとう!