如何为使用 php 执行的 ssh 命令设置超时?

2 php timeout

我使用 php 通过包装函数通过 ssh 执行 scp 命令。移动是在本地和远程服务器之间进行的。

我大致知道脚本应该执行多长时间,如果它花费太长时间(由于目标服务器陷入困境或其他网络问题),我想终止 scp 进程。当前发生这种情况时,scp 进程将完全锁定,直到重新启动目标服务器或从命令行手动终止 scp 进程。

我可以将某种超时传递给 shell_exec() 以退出正在执行的工作并继续执行脚本吗?

nic*_*ckb 5

用 UNIXtimeout实用程序包装您的命令。

system('timeout n ../my/aa');
                ^
Run Code Online (Sandbox Code Playgroud)

n以秒为单位的某个整数值在哪里。

如果命令超时,则以状态 124 退出。否则,以 COMMAND 状态退出。如果未指定信号,则在超时时发送 TERM 信号。TERM 信号会杀死任何不阻塞或捕获该信号的进程。对于其他进程,可能需要使用 KILL(9) 信号,因为无法捕捉到该信号。