問題タブ [popen]

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 に答える
1437 参照

django - Django サブプロセス

これが重複していたら本当に申し訳ありませんが、私は検索しており、答えを見つけることができませんでした.

Djangoでは、次のようなことをしたい(コメントを参照):

コードで upload_file プロセスを開始し、プロセスがバックグラウンドで実行されている間 (遅い)、すぐにユーザーを成功ページにリダイレクトする必要があります。upload_fileサブプロセスがこれを行う可能性があると思いました。

残念ながら、上記のコードはupload_file、ユーザーを成功ページにリダイレクトする前にプロセスが終了するのを待っているようですが、これは私が必要としているものではありません。

私のファイルupload_fileのPython関数であることに注意してください。views.py聞いたことがあります-スタンドアロンのPythonスクリプトにpopen変換してコマンドラインから実行できると思います-それは実行を開始し、すぐにユーザーをリダイレクトしますか? def upload_fileまたは、ある種のスレッド/プロセスを使用する必要がありますか?

- - アップデート - - -

私はそれを理解したかもしれないと思います...私がそうしp.start()てNOTを実行するとp.join()、プロセスはすぐにリダイレクトされます。しかし、これについて何か危険なことはありますか?

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

python - バッファリングされていないサブプロセス出力(最後の行がありません)

私はひどく明白な何かを見落としているに違いありません。Cプログラムを実行し、その出力をリアルタイムで表示し、最後に最後の行を解析する必要があります。これは、印刷される最後の行が常に同じであるため、簡単なはずです。

ただし、最後の行が印刷されない場合があります。Popensのbufsizeのデフォルト値は0であるため、バッファリングされていないことになっています。また、終了する直前にCコードにfflush(stdout)を追加しようとしましたが、プログラムを終了する前にストリームをフラッシュする必要はまったくないようです。

アイデアは誰ですか?

0 投票する
5 に答える
4972 参照

c++ - Linuxタイムサンプルベースのプロファイラー

短縮版:

Linux用の適切な時間ベースのサンプリングプロファイラーはありますか?

ロングバージョン:

私は通常、OProfileを使用してアプリケーションを最適化します。私は最近、疑問に思う欠点を見つけました。

問題はタイトなループであり、c++filtを生成してc++名をデマングルしました。別のボトルネックを追いかけているときに、偶然にコードに出くわしただけです。OProfileはコードについて異常なことを何も示さなかったので、私はそれをほとんど無視しましたが、私のコードセンスは、呼び出しを最適化して何が起こったかを確認するように指示しました。popenc++filtのをに変更しましたabi::__cxa_demangle。実行時間は1分以上から1秒強になりました。約x60スピードアップ。

popen呼び出しにフラグを立てるようにOProfileを構成する方法はありますか?プロファイルデータが存在するため、OProfileは、ボトルネックがヒープとstd::string呼び出しであると見なします(ところで、最適化すると、ランタイムが1秒未満に短縮され、2倍以上高速化されます)。

これが私のOProfile構成です。

ボトルネックを見つけた可能性のあるLinux用の別のプロファイラーはありますか?

問題は、OProfileが現在実行中のプロセスにのみサンプルを記録することだと思います。プロファイリングしているプロセスに常にサンプルを記録してほしい。したがって、プロセスが現在切り替えられている場合(IOまたはpopen呼び出しでブロックされている場合)、OProfileはブロックされた呼び出しにサンプルを配置するだけです。

これを修正できない場合、OProfileは、実行可能ファイルがほぼ100%のCPUをプッシュしている場合にのみ役立ちます。非効率的なブロッキング呼び出しがある実行可能ファイルには役立ちません。

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

python - RubyのIO.popen呼び出しをPythonのsubprocess.Popen呼び出しに変換するにはどうすればよいですか?

ドキュメントを読み、REPLで多くのことを試し、Googleで検索しましたが、Pythonでサブプロセス.Popenがどのように機能するかを一生理解できません。

これが私が使っているRubyコードです:

subprocess.Popenを使用してこれをPythonに変換するにはどうすればよいですか?

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

python - サブプロセスステートメントはPythonコンソールでは機能しますが、Serverdensityプラグインでは機能しませんか?

Pythonコンソールでは、次のステートメントは完全に正常に機能します(evalをそのように使用することはあまり適切ではないと思いますが、この場合はテスト目的であり、適切な解析に置き換えられます)

これをServerdensityプラグインに変換すると、プラグインを実行するたびにagent.pyデーモンがクラッシュし続けます。サブプロセスラインに絞り込むことはできましたが、理由がわかりませんでした。例外キャッチも機能していないようです。

プラグインは次のようになります。

私はPythonを使用するのはまったく新しいので、なぜこれが機能しないのか本当に理解できません。アイデアをどうもありがとう:)

0 投票する
4 に答える
8678 参照

python - Python の Popen クリーンアップ

perl でいくつかのシェル コマンドをパイプするのと同等の python を使用したかったのです。open(PIPE, "command |") の Python バージョンのようなもの。

subprocess モジュールに移動して、これを試します。

これは、perl で行うのと同じ方法で出力を読み取るために機能しますが、それ自体はクリーンアップしません。インタープリターを終了すると、

stderr 全体に数百万回吐き出しました。私は単純に、これがすべて解決されることを望んでいたと思いますが、そうではありません。p で terminate または kill を呼び出しても効果がないようです。プロセス テーブルを見てください。これにより /bin/sh プロセスが強制終了されますが、破損したパイプについて文句を言うために子の gzip はそのまま残されます。

これを行う正しい方法は何ですか?

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

python - 戻るのを待たずにPythonからプログラムを呼び出す方法

戻るのを待たずにPythonからプログラムを呼び出す方法はありますか? プログラムをディレクトリにコピーしてそのプログラムを実行するスクリプトを作成しました。しかし、Pythonからプログラムを呼び出すと、起動したプログラムが終了するまでPythonスクリプトは終了しません。私はos.systemとPopenを試しました。これを行う別の方法はありますか?

追加情報: os.P_DETACH を指定した os.spawnl はまだ機能しません。ドキュメントによると、「P_DETACH は P_NOWAIT に似ていますが、新しいプロセスは呼び出しプロセスのコンソールから切り離されます」。しかし、それはまだ呼び出しプロセスに何らかの形で接続されています(呼び出しスクリプトは、呼び出された実行可能ファイルのいずれかが戻るまで終了しません)

プログラム:

test.exe を実行すると、Done が出力されます。ただし、スクリプトの実行は終了しません (スクリプト プロセスは実行中です)。P_DETACH を使用してデーモン スレッドと Popen を作成しようとしましたが、まだうまくいきません。

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

popen - _popen に値を送信するには?

ここで問題があります。「text1」と「text2」に値を送信する必要があります。例えば、

テキスト1 =

...そして、以下のこのコードはそれらの値を参照します..

どのようにそれを達成することができます。私は多くの方法を実行しましたが、ポインターエラーが発生し続けます。

0 投票する
5 に答える
3165 参照

windows - WindowsXPでdoxygen1.6.3を使用した入力フィルターの問題

私はdoxygenを使用して、作成したいくつかのmatlabクラスのドキュメントを生成しようとしています。私はdoxygen-matlabパッケージを使用しています。このパッケージには、matlab.mファイルをc++スタイルのコメント付きファイルにまとめてdoxygenが読み取れるようにするperlスクリプトが含まれています。

私のdoxyfileで、私は(指示に従って)設定しました

ただし、コードを実行すると、入力ファイルでスクリプトを実行するのではなく、.plのデフォルトのWindows設定を使用してスクリプトを開いたように見えます。

IE、.plをメモ帳に関連付けると、doxygenが解析しようとしている入力ファイルごとにスクリプトがメモ帳で1回開かれます。.plをperl.exeに関連付けると、スクリプトが実行され、引数なしのエラーがスローされます

引数には、C:\ doxygenMatlab\m2cpp.plの4行目にファイル名-1が含まれている必要があります。

doxygenのドキュメントには

ですから、popen()とwindowsに修正できる問題があるかどうか疑問に思っています。

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

c - Cでの可変ポペン呼び出し

DELWin32 Cプログラム内でMS-DOSコマンドを実行しようとしていますが、それはすでにわかってsystemおりpopen、これに使用できます。ただし、問題は、両方ともconst charコマンドに文字列リテラル(type)が必要であり、このPerlコードに相当するDOSのようなものが必要なことです(多かれ少なかれ、実際に機能するかどうかはわかりません)。

これは明らかにコマンドに文字列リテラルrm使用する必要があります。プロセス名の引数としてchar配列を許可するCのサブプロセス関数は他にありますか?