WIP: updated log level on some log entries and added environment variable expansion for command line and its arguments
This commit is contained in:
16
init/cron.go
16
init/cron.go
@@ -18,11 +18,12 @@ func (i *Init) cron(wg *sync.WaitGroup, cron CronTask, exitFlag <-chan any) {
|
||||
defer wg.Done()
|
||||
|
||||
var (
|
||||
iwg *sync.WaitGroup
|
||||
err error
|
||||
stdout io.ReadCloser
|
||||
stderr io.ReadCloser
|
||||
cmd *exec.Cmd
|
||||
iwg *sync.WaitGroup
|
||||
err error
|
||||
stdout io.ReadCloser
|
||||
stderr io.ReadCloser
|
||||
cmd *exec.Cmd
|
||||
patchedEnv []string
|
||||
)
|
||||
|
||||
ticker := time.NewTicker(time.Second * 30)
|
||||
@@ -34,8 +35,9 @@ cron:
|
||||
wingmate.Log().Error().Str(cronTag, cron.Name()).Msgf("%+v", err)
|
||||
goto fail
|
||||
}
|
||||
cmd = exec.Command(cron.Command(), cron.Arguments()...)
|
||||
cmd.Env = cron.PatchEnv(os.Environ())
|
||||
patchedEnv = cron.PatchEnv(os.Environ())
|
||||
cmd = exec.Command(cron.Command(patchedEnv...), cron.Arguments(patchedEnv...)...)
|
||||
cmd.Env = patchedEnv
|
||||
|
||||
if len(cron.WorkingDir()) > 0 {
|
||||
cmd.Dir = cron.WorkingDir()
|
||||
|
||||
@@ -23,8 +23,8 @@ type TaskStatus interface {
|
||||
|
||||
type Task interface {
|
||||
Name() string
|
||||
Command() string
|
||||
Arguments() []string
|
||||
Command(...string) string
|
||||
Arguments(...string) []string
|
||||
EnvLen() int
|
||||
Environ() []string
|
||||
PatchEnv([]string) []string
|
||||
|
||||
@@ -25,6 +25,7 @@ func (i *Init) service(wg *sync.WaitGroup, task ServiceTask, exitFlag <-chan any
|
||||
stdout io.ReadCloser
|
||||
failStatus bool
|
||||
cmd *exec.Cmd
|
||||
patchedEnv []string
|
||||
)
|
||||
|
||||
defer func() {
|
||||
@@ -39,8 +40,10 @@ service:
|
||||
failStatus = true
|
||||
goto fail
|
||||
}
|
||||
cmd = exec.Command(task.Command(), task.Arguments()...)
|
||||
cmd.Env = task.PatchEnv(os.Environ())
|
||||
|
||||
patchedEnv = task.PatchEnv(os.Environ())
|
||||
cmd = exec.Command(task.Command(patchedEnv...), task.Arguments(patchedEnv...)...)
|
||||
cmd.Env = patchedEnv
|
||||
|
||||
if len(task.WorkingDir()) > 0 {
|
||||
cmd.Dir = task.WorkingDir()
|
||||
@@ -104,5 +107,5 @@ func (i *Init) pipeReader(wg *sync.WaitGroup, pipe io.ReadCloser, tag, serviceNa
|
||||
wingmate.Log().Error().Str(tag, serviceName).Msgf("got error when reading pipe: %#v", err)
|
||||
}
|
||||
|
||||
wingmate.Log().Info().Str(tag, serviceName).Msg("closing pipe")
|
||||
wingmate.Log().Debug().Str(tag, serviceName).Msg("closing pipe")
|
||||
}
|
||||
|
||||
@@ -52,9 +52,9 @@ func (i *Init) sigTermPump(startTime time.Time, selfExit <-chan any) status {
|
||||
t := time.NewTicker(time.Millisecond * 100)
|
||||
defer t.Stop()
|
||||
|
||||
wingmate.Log().Info().Msg("start pumping SIGTERM signal")
|
||||
wingmate.Log().Debug().Msg("start pumping SIGTERM signal")
|
||||
defer func() {
|
||||
wingmate.Log().Info().Msg("stop pumping SIGTERM signal")
|
||||
wingmate.Log().Debug().Msg("stop pumping SIGTERM signal")
|
||||
}()
|
||||
|
||||
for time.Since(startTime) < time.Duration(time.Second*4) {
|
||||
|
||||
@@ -20,7 +20,7 @@ func (i *Init) waiter(wg *sync.WaitGroup, runningFlag <-chan any, sigHandlerFlag
|
||||
defer wg.Done()
|
||||
|
||||
defer func() {
|
||||
wingmate.Log().Info().Msg("waiter exiting...")
|
||||
wingmate.Log().Debug().Msg("waiter exiting...")
|
||||
}()
|
||||
|
||||
running = true
|
||||
@@ -41,7 +41,7 @@ wait:
|
||||
} else {
|
||||
select {
|
||||
case <-runningFlag:
|
||||
wingmate.Log().Info().Msg("waiter received shutdown signal...")
|
||||
wingmate.Log().Debug().Msg("waiter received shutdown signal...")
|
||||
running = false
|
||||
default:
|
||||
}
|
||||
@@ -55,14 +55,14 @@ wait:
|
||||
if flagged {
|
||||
close(sigHandlerFlag)
|
||||
flagged = false
|
||||
wingmate.Log().Warn().Msg("waiter: inner flag")
|
||||
wingmate.Log().Debug().Msg("waiter: inner flag")
|
||||
}
|
||||
wingmate.Log().Warn().Msg("waiter: no child left")
|
||||
wingmate.Log().Debug().Msg("waiter: no child left")
|
||||
break wait
|
||||
}
|
||||
}
|
||||
|
||||
wingmate.Log().Warn().Msgf("Wait4 returns error: %+v", err)
|
||||
wingmate.Log().Debug().Msgf("Wait4 returns error: %+v", err)
|
||||
waitingForSignal = true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user