mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 19:13:34 +00:00
30 lines
589 B
Go
30 lines
589 B
Go
package corroservice
|
|
|
|
import (
|
|
"fmt"
|
|
"log/slog"
|
|
"os/exec"
|
|
)
|
|
|
|
const DefaultSystemdUnit = "uncloud-corrosion.service"
|
|
|
|
type SystemdService struct {
|
|
DataDir string
|
|
Unit string
|
|
}
|
|
|
|
func DefaultSystemdService(dataDir string) *SystemdService {
|
|
return &SystemdService{
|
|
DataDir: dataDir,
|
|
Unit: DefaultSystemdUnit,
|
|
}
|
|
}
|
|
|
|
func (s *SystemdService) Start() error {
|
|
if _, err := exec.Command("systemctl", "start", s.Unit).Output(); err != nil {
|
|
return fmt.Errorf("systemctl start %s: %w", s.Unit, err)
|
|
}
|
|
slog.Info("Corrosion systemd service started.", "unit", s.Unit)
|
|
return nil
|
|
}
|