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

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

ruby - Rubyでpopen3のハングアップを修正するには?

ツール ala のようなコマンドを実行するために使用したい popen3 を使用すると、予期しない動作が発生しますcmd < file1 > file2。以下の例はハングするため、stdout done到達することはありません。それ以外のツールを使用catすると、ハングアップする可能性があるため、stdin done到達することはありません。バッファリングに苦しんでいると思いますが、これを修正するにはどうすればよいですか?

0 投票する
0 に答える
1043 参照

ruby - Windows で Ruby の popen3 または同等のものを使用する

シェル コマンドの実行に使用する Vim プラグインを作成していOpen3.popen3ます。結果と終了コードが必要です。Linux では正常に動作しますが、Windows ではフリーズします。pryWindows で確認しましたが、実行するたびに、Open3.popen3またはProcess.spawnシェルがフリーズするだけです。私はwin32-open3-19宝石をインストールしようとしました(そしてそれをロードしますrequire 'win32/open3) - それでもフリーズします。

使用できる他の方法や宝石はありますか? 私はできるだけ近いものを好みますOpen3(私の Linux と Windows のバージョンは、できるだけ多くのコードを共有できます)。

Windows 7 64ビットにRubyInstallerを介してインストールされたRuby 1.9.3を実行しています。

詳細:

これは私が実行したい正確なコードです: https://github.com/someboddy/vim-erroneous/blob/master/autoload/erroneous.rb#L43

Linux では動作しますが、Windows ではフリーズします。

私の Windows では、開いpryて次のように記述します。

そして、私のシェルはフリーズします。Linuxで(「cmd」の代わりに「bash」を使用して)試してみると、問題なく動作します。「dir」(ユーザー入力を待つべきではない)も試しましたが、フリーズしました。

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

ruby - ruby Open3.popen3()から終了ステータスを取得するにはどうすればよいですか?

rubyのOpen3.popen3()メソッドから開始されたシェルコマンドの終了ステータスを取得しようとして立ち往生しているようです。

これが私のコードです:

私が今アクセスしようとすると、$?それはまだですnil

結局、終了ステータスを取得することは可能ですか?

注:
-lsは、スクリプトで使用しようとしているコマンドではありません。例を示すためにこれを使用しました。私のスクリプトはもう少し複雑で、ユーザー入力が含まれているため、Open3のサニタイズ機能が必要です。
--popen3のブロックバリアントも試しましたが、それでも成功しませんでした。

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

python - find -exec に相当する Python

PopenでこのBASHコマンドを実行しようとしています:

しかし、私が得るたびに:「検索:`-exec'への引数がありません\n」がstderrにあります。

これに相当するpythonは何でしょうか?

私の素朴なアプローチは次のようになります。

確かにこれを行うためのより良い、よりpythonicな方法はありますか?

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

ruby - 手動でパスワードを入力せずに多くの証明書を生成するための openssl のスクリプトを作成しますか?

認証局を作成しましたが、50 以上の証明書を生成して署名する必要があります。このプロセスをスクリプト化したかったのです。パスワードを 100 回以上手動で入力する必要はありません。

これが私がハングアップしていたコマンドです:

問題は、次のプロンプトでパスワードを作成する必要があることです。

パスワードの入力を求められたときは、-passin pass:mypassコマンド ライン オプション for を使用できますopenssl。しかし、これはパスワードの作成には機能しないようです。

また、後でパスワードを削除するときにパスワードが必要になるのは奇妙に思えます:

簡単な Ruby スクリプトを作成してみました。

しかし、これもうまくいかないようです。それでも、パスワードを作成するように求める手動のプロンプトが表示されます。

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

ruby-on-rails - Ruby on RailsでPerlスクリプトの呼び出しがタイムアウトする

Open3 を使用して perl スクリプトを呼び出す Ruby on Rails アプリケーションを作成しています。ただし、perl スクリプトを呼び出すと、アプリで Timeout::Error が必要以上に早く発生し続けます。スクリプトを呼び出すコードは次のようになります。

「長時間」実行される可能性のあるスクリプト (おそらく 20 ~ 30 秒) を呼び出すことは、Ruby on Rails アプリケーションにとって理想的ではないことを認識していますが、選択肢はあまりありません。

ユニコーンを使用して同時実行性を取得しており、ユニコーンのタイムアウトを 60 秒に設定しています。ユニコーン ファイルの 60 秒のタイムアウトと、Open3 呼び出しにラップされた 120 秒のタイムアウトにもかかわらず、私の要求は約 18 秒でタイムアウトし続けます。反対側に結果が表示されているため、スクリプトが正常に終了していることはわかっていますが、アプリがスクリプトの戻りを待つ必要があります。

Rails アプリを強制的に待機させ、タイムアウトさせない他の方法はありますか?

ありがとう!

キャッチされたエラーからのバックトレース:

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

lua - Use stderr in lua io.popen to determine faulty function call

I'm making a function that can read the metadata of the current song playing in spotify. This is being programmed in lua since it is an implementation for awesome wm. I got the following line to get all the metadata that I can later use.

However when Spotify is not running I don't get the expected information and qdbus writes an error to the stderr stream. I wanted to use the fact that qdbus writes to the error stream to determine a fault and stop the program there. (This should also catch any other errors not related to wheter spotify is running or not)

My understanding is that lua popen uses popen3 that can subdivide between stdout and stderr. but all my efforts so far are fruitless and my error stream is always empty. Is it possible to check for a non nil value in the stderr in order to determine a faulty call to qdbus (or awk)?

thanks!

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

ruby - Ruby Open3.popen3 はユーザー入力をシミュレートします

ユーザー入力が必要なbash スクリプト ( @command) を実行しようとしています。次のコードを使用してそのスクリプト入力をフィードしようとしています。

スクリプトのアイデアは次のとおりです。

誰かが私が間違っていることを教えてくれたり、これを別の方法で実装する方法について何か提案があれば、それは大歓迎です。


また、次のようにスクリプトを実行できます。

この場合、アプリを実行しているコンソールでスクリプト出力の内容を確認できます。とにかくその場所に入力をフィードする場合は、それも機能します。

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

ruby - 実行可能ファイルを開き、そのストリームを管理しますか?

popen3テスト目的で、を含むものを要求する Ruby スクリプトを開こうとしています。

プロセスの STDIN に入力して出力を検査できるようにする必要があります。これまでのところ、私はこれを持っています:

何日も努力して、私の脳は溶けています。

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

ruby - Ruby の popen3 が「開いているファイルが多すぎる」ためにクラッシュするのはなぜですか?

Popen3 を使用していくつかの Perl スクリプトを実行し、その出力をテキスト ファイルにダンプしています。テキスト ファイル内で、Perl スクリプトの結果を検索します。約 40 分間 (約 220 ファイル) 実行した後にエラーが発生します。

スクリプトは以下です。

popen3このスクリプトは 4900 個の Perl ファイルを処理しているため、ファイルが多すぎるのか、正しく使用していないのかわかりません。

私を助けてくれてありがとう!

いくつかの非常に役立つポインタの後に、スクリプトをリファクタリングしました! コードはうまく機能しています!