我在 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 回答
- 0 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消