0

所以 - 我proc_open()用来执行诸如 , 等程序sshrsync执行scp备份任务。

但是,在某些情况下,这些过程可能会变得交互并需要输入,例如当 SSH 的公钥认证失败时,它会要求输入密码。这是一个主要问题,因为让备份作业挂起是不可能的,更糟糕​​的是,不会产生错误。

如何完全摆脱正在运行的进程中的交互性?如果该过程突然需要输入,我想立即退出并生成错误。通用超时不是解决方案,因为备份过程在正常操作中可能需要很长时间。我真的需要一个通用的解决方案来解决这个问题。

谢谢!

4

1 回答 1

1

只需将一个空文件作为标准输入传递:

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

该脚本在几毫秒后结束。

于 2013-04-24T12:48:51.343 回答