問題タブ [popen3]
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.
ruby - ruby から bash スクリプトを実行しても正しい pid が生成されない
私はさまざまなジョブを実行するための Ruby フレームワークを開発しています。私がする必要があることの 1 つは、これらのジョブの出力を使用してすべてを整理するためにいつ終了したかを知ることです。私は問題なく使用していますが、一部の同僚が別のシステムで使用し始めており、非常に奇妙なことが起こっています. 私がしているのは、次を使用してコマンドを実行することです
後で、ジョブが次のように終了したかどうかを確認します。
私が実行しているシステム(Scientifi linux 6)では完全に動作しますが、私の友人がUbuntu 14.04(ruby 1.9.3p484を使用)で実行を開始したとき、コマンドはcmd1 && cmd2 && cmd3
各コマンドが同時に実行されるなどのコマンドの連結です次々にではなく、システムによって返された pid は、t.pid
実行されているさまざまなプロセスの pid のいずれでもありません。
コードを変更し、コマンドの連結を実行する代わりに、popen3 から呼び出されたコマンド内のすべてのコマンドを含むスクリプトを作成しますOpen3.popen3("./script.sh")
が、動作は同じです...すべてのコマンドが同時に実行され、その pid ruby は、どのプロセス pid でもないことを知っています...
これがルビー関連のものかどうかはわかりませんがscript.sh
、手動で実行すると期待どおりに動作し、コマンドを次々に実行するため、ルビーがそれに応じてプロセスを起動していないか、システムがプロセスを適切に読み取っていないようです。何が起こっているのか知っていますか?
どうもありがとう!
編集:実行中のコマンドは次のようになります
./myFit.exe h vlq.config &> output_h.txt && ./myFit.exe d vlq.config &> output_d.txt && ./myFit.exe p vlq.config &> output_p.txt
このコマンドは、Ruby スクリプト内ではなく手動で実行すると、完全に実行されます。まさにこのコマンドです。ruby スクリプトから実行すると、すべての myFit.exe 実行が同時に実行されます (ただし、&& を使用して実行する必要があるため、前のスクリプトが正常に機能する場合はそれらを実行する必要があります)。Myfit.exe は、フィットさせるためのツールであり、システム コマンドではありません。繰り返しますが、このコマンドは、手動で実行すると完全に実行されます。
ruby - Windows で Open3.popen3 が間違ったエラー Errno::ENOENT を返す
test.rb に次のコードがあります。
bar.exe
は、私が作成したコンソール アプリケーションで、 にありC:\Program Files\foo\
ます。私が実行するとbar.exe
:
- それは出力します
"Hello world!"
- のような任意の引数を指定すると
bar.exe /blah
、ヘルプ メッセージが出力されます。
実行するruby test.rb
と、次のエラーが表示されます。
コードを call に変更するとpopen3
:
エラーは表示されずErrno::ENOENT
、代わりにヘルプ メッセージが表示されますが、"Hello World"
出力が必要です。
解決策を探しましたが、「実行可能ファイルが見つからないときに Open3.popen3 が間違ったエラーを返すのはなぜですか?」への回答を含め、何も機能していません。
このエラーが発生する理由と解決方法を教えてください。
ruby-on-rails - open3 で使用するための rubymine の設定方法は?
問題
Rails アプリで xray -rails gemを使用していますが、ブラウザーでクリックしたときに正しいファイルに rubymine を開くようにしたいと考えています。これを設定する方法は不明でした。xray-rails gem は、open3 を使用してエディターでファイルを開きます。