0

つまり、バックアップタスクを実行するために、などproc_open()のプログラムを実行するために使用しています。sshrsyncscp

ただし、場合によっては、これらのプロセスがインタラクティブになり、入力が必要になることがあります。たとえば、SSHの公開鍵認証が失敗し、パスワードを要求する場合などです。バックアップジョブをハングさせることは問題外であり、さらに悪いことに、エラーを生成しないため、これは大きな問題です。

実行中のプロセスの双方向性を完全に取り除くにはどうすればよいですか?プロセスが突然入力を必要とする場合、私は救済してすぐにエラーを生成したいと思います。通常の操作ではバックアッププロセスに非常に長い時間がかかる可能性があるため、一般的なタイムアウトは解決策ではありません。この問題に対する一般的な解決策が本当に必要です。

ありがとう!

4

1 に答える 1

1

空のファイルをstdinとして渡すだけです。

 $r = proc_open('cat', [fopen('/dev/null', 'rb')], $p);
 proc_close($r)

このスクリプトは数ミリ秒で終了します。

于 2013-04-24T12:48:51.343 に答える