为了账号安全,请及时绑定邮箱和手机立即绑定

AJAX 响应在重新启动 Raspberry Pi 之前丢失

AJAX 响应在重新启动 Raspberry Pi 之前丢失

PHP
一只甜甜圈 2023-07-08 16:24:48
我在 Raspberry Pi 4 上有一个 LAMP 服务器,其网页正在对重新启动 pi 的 php 脚本进行 AJAX 调用。我的脚本 echo 是一个返回网页的 JSON 字符串响应,表明它正在准备重新启动,然后执行“sudo restart”命令。该脚本在 100% 的时间内运行并始终重新启动,但在 pi 重新启动之前回显并不总是完全传输,这会导致错误。示例代码:<?php  ... other code      $tags['status'] = "restarting";  echo json_encode($tags);  $cmd = "sudo reboot";  exec($cmd);?>我尝试在 echo 之后添加 sleep() 语句,但这会停止整个脚本,并且直到睡眠之后才会回显。我还尝试将 sleep 添加到 exec 命令中,例如“sleep 5; sudo restart”,但这也不起作用。如果我注释掉重新启动语句,我 100% 都会得到回显响应。这告诉我我有一个时间问题。有没有办法确保在重新启动之前完全处理回显?我已经寻找答案,但没有找到任何有帮助的东西。
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

我曾经有过类似的事情,并决定使用 2 个 ajax 调用:

  1. 执行任务并发回关闭消息。

  2. 收到消息后,显示并等待几秒钟,然后发送重新启动请求。

这防止了竞争条件。


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信