Add the system command with reboot subcommand

This commit is contained in:
2022-05-13 23:06:51 +02:00
parent 7197fce351
commit c9ba91c585
7 changed files with 356 additions and 59 deletions

25
pkg/portal/system.go Normal file
View File

@@ -0,0 +1,25 @@
//go:build linux && amd64
package portal
import (
"context"
"syscall"
"github.com/apex/log"
"github.com/dpogorzelski/speedrun/proto/portal"
)
func (s *Server) SystemReboot(ctx context.Context, file *portal.SystemRebootRequest) (*portal.SystemRebootResponse, error) {
fields := log.Fields{
"context": "system",
"command": "reboot",
}
log := log.WithFields(fields)
log.Debug("Received system reboot request")
syscall.Sync()
go syscall.Reboot(syscall.LINUX_REBOOT_CMD_RESTART)
return &portal.SystemRebootResponse{State: portal.State_CHANGED, Message: "Rebooting"}, nil
}