問題タブ [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.
ruby - Ruby popen と PostgreSQL createuser の使用
次のコマンドを呼び出してランダムに生成されたパスワードを渡す、非常に単純な rake タスクを作成しようとしています (そして、かなり大きな rake タスクにマージします)。さしあたっては、ランダム生成を偽装して、パスワードを「test」に設定してみましょう。
私のタスク用のコードは次のとおりです。
io.write
まだパスワードを入力する必要があるため、機能していないようです。また、破壊されていません。タスクを実行して手動でパスワードを入力すると、そのパスワードを使用してpsql
.
など、かなりの数のバリエーションを試しましたが、それを使用する他の例を見たので、ファイルio.close
を開きます。'w'
'r'
'r+'
これを機能させる方法に少し困惑しています。アイデア/コメント/回答をいただければ幸いです。
編集1:これは、違いが生じる場合に備えて、Debian(Lenny)Linuxシステム上にあります。
c - fclose()/pclose() が一部のファイル ポインタでブロックされる場合がある
fclose()
子プロセスが終了するまで、ファイル記述子ブロックを ing した後、ここで呼び出しますdup()
(おそらくストリームが終了したため)。
ただし、のpipe()
、fork()
、を手動で実行してから、パイプの読み取りファイル記述子を ing すると、元のファイルを閉じてもブロックされません。execvp()
popen()
dup()
なぜこれが発生するのですか? また、FILE *
返された fromを閉じてpopen()
、代わりにファイル記述子を使用するにはどうすればよいですか?
アップデート:
ドキュメントには を使用するように記載されていますがpclose()
、fclose()
ブロックも同様です。さらに、私は glibc コードをいじって、 をpclose()
呼び出すだけfclose()
です。fclose()
またはを使用しても、動作は同じpclose()
です。
linux - パイプの popen & status
popen
プロセス PA から (読み取り専用)プロセス PO を生成するとします。次にpclose()
PA側のパイプ。
PO の側では、標準出力がまだ使用可能かどうかを判断するにはどうすればよいwrite()
ですか?
PO 側で SIGPIPE をキャッチしようとしても無駄だったことに注意してください。
UPDATED :fstat(1, &buf)
成功せずに使用してみました。
更新: PO を介してこの状態を検出する必要がある理由は、PA から PO の PID にアクセスできないためです (したがって、それを強制終了することはできません)。さらに、PO は、PA の障害に直面した場合、つまり単独で終了する場合に、より堅牢になることを望みます。
解決策: を使用socketpair
しfork
ました。プロセスを制御しようとするpopen
ことは、(少なくとも私にとっては)悪夢であることが判明しました。 貢献してくれたすべての人に感謝します!
ruby-on-rails - Ruby/RoR と多くのサブプロセス
Ruby/Rails を使用して無料の Web アプリケーションを構築しようとしています。さまざまな携帯電話会社のオンライン フォームから SMS を送信できるはずです。(これのように(ロシア語で))。
だから、私はする必要があります
- 私のウェブサイトから SMS を送信したいユーザーを待ちます。
- オペレーターの Web サイトへの接続を確立します。おそらく、Mechanize を使用しています。
- キャプチャを取得する
- ユーザーにキャプチャを表示する
- ユーザーがメッセージとキャプチャを入力できるようにする
- オペレーターの Web サイトでフォームを送信します (メッセージ、キャプチャ、電話番号を含む)
オペレーターの Web サイトへの接続は、このすべてのプロセスの間アクティブである必要があります (そうでない場合、キャプチャは変更されます)。私が理解している限りでは、SMS が送信されるたびに (サブ) プロセスを作成する必要があります。rails\ruby でこれを処理する最善の方法を教えてください。
私はまだWeb開発に慣れていません...スレッドを使用する必要がありますか? フォーク?開く?PTYを使用していますか?いくつかの外部宝石?プロセスとどのように通信すればよいですか?
python - Python 文字列から削除
Python で何かを実行するpopen
と、各行の末尾にキャリッジ リターン (13) の CR-LF 10 進値を含むバッファーから結果が返されます。これを Python 文字列からどのように削除しますか?
python - コンソールなしでPopenを使用してpythonwでプロセスを実行する
Popen 呼び出しを介して外部プログラムを実行する GUI を備えたプログラムがあります。
しかし、何をしてもコンソールがポップアップします (ファイルハンドルに NUL を渡そうとしました)。コンソールを解放するために呼び出すバイナリを取得せずにそれを行う方法はありますか?
python - Python でサブプロセス Popen と PIPE
次のコードは、空の行を出力として出力しますが、これは false です。pdf ファイルに対して 777 のアクセス許可でコマンドをテストしたため、問題はアクセス許可にありません。正しい出力が得られるようにコマンドを修正するにはどうすればよいですか?
python - 2.4でWindows非同期Popenプロセスを強制終了します
プロセス(Pyroサーバー)を開き、開いたプロセスを呼び出して情報を取得するためのテストスクリプトがあります。すべてが完了すると、プロセスを閉じる必要があります。これはすべて、ステージングサーバーでの自動テストの一部です。
Python 2.6では、次のことができます。
残念ながら、私はここでPython 2.4にロックされているため、その関数にアクセスできません。もちろん、スクリプトを終了させるだけで、サーバーは存続します。スクリプトが終了する前にそのプロセスを閉じる/強制終了するにはどうすればよいですか?
python - Python 文字列から最後の 0 を取り除く
クリップボードからエントリを取得し、1 秒ごとに出力します。
結果:
最後の 0 を返す理由はわかりませんが、文字列ストリップ (int にはストリップがない) を使用できないようです。したがって、0 は文字列を整数にしますか?
上記の結果の python 文字列から最後の 0 を削除するにはどうすればよいですか?
私は Python に変換する BASH スクリプターです。