Add the system command with reboot subcommand
This commit is contained in:
25
pkg/portal/system.go
Normal file
25
pkg/portal/system.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user