如果你希望在 Raspberry Pi 3 重啟時,MQTT Broker(如 Mosquitto)自動啟動,可以確認以下設定是否正確:
在安裝完 Mosquitto 之後,通常它會自動設定為開機自動啟動,但你可以透過以下指令確認:
bash
複製程式碼
sudo systemctl is-enabled mosquitto
如果結果顯示 enabled,代表 Mosquitto 會在系統啟動時自動啟動。如果顯示 disabled,則需要啟用自動啟動:
bash
複製程式碼
sudo systemctl enable mosquitto
你可以檢查 Mosquitto 服務是否正常運行:
bash
複製程式碼
sudo systemctl status mosquitto
如果服務沒有運行,可以手動啟動:
bash
複製程式碼
sudo systemctl start mosquitto
可以透過以下步驟測試 Mosquitto 是否會在重啟後自動啟動:
重啟 Raspberry Pi 3:
bash
複製程式碼
sudo reboot
在系統重新啟動後,檢查 Mosquitto 服務是否正常運行:
bash
複製程式碼
sudo systemctl status mosquitto
驗證 MQTT 功能是否正常,可以發佈和訂閱訊息:
bash
複製程式碼
mosquitto_pub -h localhost -t test/topic -m "Test after reboot" -p 11883
mosquitto_sub -h localhost -t test/topic -p 11883
確保重啟後 UFW 的規則依然存在且正確。使用以下指令檢查:
bash
複製程式碼
sudo ufw status
如果發現規則消失或變更,可以再手動添加:
bash
複製程式碼
sudo ufw allow 11883/tcp
如果你對 Mosquitto 的設定檔(如 /etc/mosquitto/mosquitto.conf)做了任何修改,請確保重新啟動服務以應用更改:
bash
複製程式碼
sudo systemctl restart mosquitto
如果 Mosquitto 無法自動啟動:
檢查 /var/log/syslog 或 /var/log/mosquitto/mosquitto.log 中是否有相關錯誤訊息。
確認其他服務或應用程式沒有佔用相同的連接埠。
如果 UFW 設定無法永久生效:
檢查 UFW 的設定檔 /etc/ufw/ufw.conf 是否有問題,並確認 DEFAULT_FORWARD_POLICY="ACCEPT"。
這樣可以確保在系統重啟後,Mosquitto 和防火牆規則都能正常運行。