1
0
mirror of https://github.com/rancher/os.git synced 2025-05-02 13:23:23 +00:00
os/main.go

71 lines
1.9 KiB
Go
Raw Normal View History

2015-02-09 04:38:37 +00:00
package main
import (
"fmt"
"os"
2017-03-14 02:11:24 +00:00
"github.com/containernetworking/cni/plugins/ipam/host-local"
2016-06-28 22:13:45 +00:00
"github.com/containernetworking/cni/plugins/main/bridge"
2016-06-01 04:38:10 +00:00
"github.com/docker/docker/docker"
2015-02-09 04:38:37 +00:00
"github.com/docker/docker/pkg/reexec"
2017-03-14 02:11:24 +00:00
"github.com/rancher/cniglue"
"github.com/rancher/os/cmd/cloudinitexecute"
"github.com/rancher/os/cmd/cloudinitsave"
"github.com/rancher/os/cmd/control"
"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/systemdocker"
"github.com/rancher/os/cmd/wait"
"github.com/rancher/os/dfs"
osInit "github.com/rancher/os/init"
2015-02-09 04:38:37 +00:00
)
2016-06-01 04:38:10 +00:00
var entrypoints = map[string]func(){
"autologin": control.AutologinMain,
"cloud-init-execute": cloudinitexecute.Main,
"cloud-init-save": cloudinitsave.Main,
"console": control.ConsoleInitMain,
"console.sh": control.ConsoleInitMain,
"docker": docker.Main,
"dockerlaunch": dfs.Main,
"init": osInit.MainInit,
"netconf": network.Main,
"ros-sysinit": sysinit.Main,
"system-docker": systemdocker.Main,
"wait-for-docker": wait.Main,
"cni-glue": glue.Main,
"bridge": bridge.Main,
"host-local": hostlocal.Main,
"respawn": respawn.Main,
// Power commands
"halt": power.Shutdown,
"poweroff": power.Shutdown,
"reboot": power.Shutdown,
"shutdown": power.Shutdown,
2015-02-17 21:31:20 +00:00
}
2015-02-09 04:38:37 +00:00
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()
}
2016-06-01 04:38:10 +00:00
for name, f := range entrypoints {
reexec.Register(name, f)
}
2015-02-18 00:31:19 +00:00
2015-02-09 04:38:37 +00:00
if !reexec.Init() {
2016-06-01 04:38:10 +00:00
control.Main()
2015-02-09 04:38:37 +00:00
}
}