feat(init): log to /dev/kmsg (#214)

This commit is contained in:
Andrew Rynhard 2018-11-16 09:26:38 -08:00 committed by GitHub
parent 0244d182dc
commit b30ed5dd4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 3 deletions

View File

@ -19,6 +19,11 @@ import (
"github.com/autonomy/talos/src/initramfs/pkg/userdata"
)
const (
prefix = "[talos] "
flags = 0
)
var (
switchRoot *bool
)
@ -30,10 +35,13 @@ func recovery() {
}
func init() {
log.SetFlags(log.Lshortfile | log.Ldate | log.Lmicroseconds | log.Ltime)
if err := os.Setenv("PATH", constants.PATH); err != nil {
out, err := os.OpenFile("/dev/kmsg", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(err)
}
log.SetOutput(out)
log.SetPrefix(prefix)
log.SetFlags(flags)
switchRoot = flag.Bool("switch-root", false, "perform a switch_root")
flag.Parse()
@ -124,6 +132,9 @@ func root() (err error) {
func main() {
defer recovery()
if err := os.Setenv("PATH", constants.PATH); err != nil {
panic(err)
}
if *switchRoot {
if err := root(); err != nil {
panic(err)

View File

@ -50,9 +50,15 @@ func (p *Process) build(data *userdata.UserData, args *runner.Args, opts *runner
err = fmt.Errorf("service log handler: %v", err)
return
}
var writer io.Writer
if data.Debug {
writer = io.MultiWriter(w, os.Stdout)
out, err := os.OpenFile("/dev/kmsg", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
return nil, err
}
writer = io.MultiWriter(w, out)
} else {
writer = w
}