up some deprecated fixes
Build / Build (push) Successful in 10s

This commit is contained in:
wt
2026-03-19 14:54:33 +07:00
parent fca32c2233
commit 7f0e5b7b10
8 changed files with 21 additions and 105 deletions
+1 -13
View File
@@ -10,13 +10,8 @@ import (
"time"
)
// MOUNT_POINT должен быть определён (например, как глобальная константа)
// const MOUNT_POINT = "/mnt/mydevice"
// handleReboot обрабатывает HTTP-запрос на перезагрузку системы
func HandleReboot(w http.ResponseWriter, r *http.Request) {
MOUNT_POINT := os.Getenv("MOUNT_POINT")
// Отправляем JSON-ответ (как в C: mg_http_reply)
response := map[string]string{
"status": "success",
"message": "System rebooting...",
@@ -27,26 +22,19 @@ func HandleReboot(w http.ResponseWriter, r *http.Request) {
return
}
// Синхронизируем все файловые системы (аналог sync())
syscall.Sync()
// Размонтируем точку монтирования, если она смонтирована
fmt.Printf("Unmounting %s...\n", MOUNT_POINT)
if err := syscall.Unmount(MOUNT_POINT, 0); err != nil {
// Ошибку не фатализируем, просто логируем
fmt.Printf("Unmount error: %v\n", err)
}
// Повторная синхронизация
syscall.Sync()
// Инициируем мягкую перезагрузку через команду shutdown
fmt.Println("Initiating soft reboot via shutdown...")
// Запускаем shutdown в отдельной горутине с небольшой задержкой,
// чтобы ответ гарантированно ушёл клиенту до завершения сервера
go func() {
time.Sleep(500 * time.Millisecond) // ждём 0.5 секунды
time.Sleep(500 * time.Millisecond)
cmd := exec.Command("shutdown", "-r", "now")
if err := cmd.Run(); err != nil {
fmt.Printf("Reboot failed: %v\n", err)