mirror of
https://github.com/rancher/os.git
synced 2025-04-27 03:00:49 +00:00
62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/rancher/os/cmd/cloudinitexecute"
|
|
"github.com/rancher/os/cmd/cloudinitsave"
|
|
"github.com/rancher/os/cmd/control"
|
|
osInit "github.com/rancher/os/cmd/init"
|
|
"github.com/rancher/os/cmd/network"
|
|
"github.com/rancher/os/cmd/power"
|
|
"github.com/rancher/os/cmd/respawn"
|
|
"github.com/rancher/os/cmd/sysinit"
|
|
"github.com/rancher/os/cmd/wait"
|
|
"github.com/rancher/os/pkg/dfs"
|
|
|
|
"github.com/docker/docker/pkg/reexec"
|
|
)
|
|
|
|
var entrypoints = map[string]func(){
|
|
"autologin": control.AutologinMain,
|
|
"cloud-init-execute": cloudinitexecute.Main,
|
|
"cloud-init-save": cloudinitsave.Main,
|
|
"dockerlaunch": dfs.Main,
|
|
"init": osInit.MainInit,
|
|
"netconf": network.Main,
|
|
"recovery": control.AutologinMain,
|
|
"ros-bootstrap": control.BootstrapMain,
|
|
"ros-sysinit": sysinit.Main,
|
|
"wait-for-docker": wait.Main,
|
|
"respawn": respawn.Main,
|
|
|
|
// Power commands
|
|
"halt": power.Shutdown,
|
|
"poweroff": power.Shutdown,
|
|
"reboot": power.Shutdown,
|
|
"shutdown": power.Shutdown,
|
|
}
|
|
|
|
func main() {
|
|
if 0 == 1 {
|
|
// TODO: move this into a "dev/debug +build"
|
|
fmt.Fprintf(os.Stderr, "ros main(%s) ppid:%d - print to stdio\n", os.Args[0], os.Getppid())
|
|
|
|
filename := "/dev/kmsg"
|
|
f, err := os.OpenFile(filename, os.O_WRONLY, 0644)
|
|
if err == nil {
|
|
fmt.Fprintf(f, "ros main(%s) ppid:%d - print to %s\n", os.Args[0], os.Getppid(), filename)
|
|
}
|
|
f.Close()
|
|
}
|
|
|
|
for name, f := range entrypoints {
|
|
reexec.Register(name, f)
|
|
}
|
|
|
|
if !reexec.Init() {
|
|
control.Main()
|
|
}
|
|
}
|