1
0
mirror of https://github.com/rancher/os.git synced 2025-09-05 00:37:12 +00:00

Recovery console

This commit is contained in:
Josh Curl
2016-11-29 17:06:23 -08:00
committed by Sven Dowideit
parent 53225f6e9b
commit fecbb9df2e
8 changed files with 142 additions and 8 deletions

View File

@@ -82,7 +82,7 @@ func consoleInitFunc() error {
log.Error(err)
}
if err := writeRespawn(); err != nil {
if err := writeRespawn("rancher", true); err != nil {
log.Error(err)
}
@@ -155,7 +155,7 @@ func consoleInitFunc() error {
return syscall.Exec(respawnBinPath, []string{"respawn", "-f", "/etc/respawn.conf"}, os.Environ())
}
func generateRespawnConf(cmdline string) string {
func generateRespawnConf(cmdline, user string, sshd bool) string {
var respawnConf bytes.Buffer
for i := 1; i < 7; i++ {
@@ -163,7 +163,7 @@ func generateRespawnConf(cmdline string) string {
respawnConf.WriteString(gettyCmd)
if strings.Contains(cmdline, fmt.Sprintf("rancher.autologin=%s", tty)) {
respawnConf.WriteString(" --autologin rancher")
respawnConf.WriteString(fmt.Sprintf(" --autologin %s", user))
}
respawnConf.WriteString(fmt.Sprintf(" --noclear %s linux\n", tty))
}
@@ -175,23 +175,25 @@ func generateRespawnConf(cmdline string) string {
respawnConf.WriteString(gettyCmd)
if strings.Contains(cmdline, fmt.Sprintf("rancher.autologin=%s", tty)) {
respawnConf.WriteString(" --autologin rancher")
respawnConf.WriteString(fmt.Sprintf(" --autologin %s", user))
}
respawnConf.WriteString(fmt.Sprintf(" %s\n", tty))
}
respawnConf.WriteString("/usr/sbin/sshd -D")
if sshd {
respawnConf.WriteString("/usr/sbin/sshd -D")
}
return respawnConf.String()
}
func writeRespawn() error {
func writeRespawn(user string, sshd bool) error {
cmdline, err := ioutil.ReadFile("/proc/cmdline")
if err != nil {
return err
}
respawn := generateRespawnConf(string(cmdline))
respawn := generateRespawnConf(string(cmdline), user, sshd)
files, err := ioutil.ReadDir("/etc/respawn.conf.d")
if err == nil {