mirror of
https://github.com/containers/podman.git
synced 2025-07-29 19:33:13 +08:00
Merge pull request #20062 from vrothberg/syslog-fix
pass --syslog to the cleanup process
This commit is contained in:
@ -76,7 +76,6 @@ var (
|
||||
dockerConfig = ""
|
||||
debug bool
|
||||
|
||||
useSyslog bool
|
||||
requireCleanup = true
|
||||
|
||||
// Defaults for capturing/redirecting the command output since (the) cobra is
|
||||
@ -611,7 +610,7 @@ func rootFlags(cmd *cobra.Command, podmanConfig *entities.PodmanConfig) {
|
||||
pFlags.StringArrayVar(&podmanConfig.RuntimeFlags, runtimeflagFlagName, []string{}, "add global flags for the container runtime")
|
||||
_ = rootCmd.RegisterFlagCompletionFunc(runtimeflagFlagName, completion.AutocompleteNone)
|
||||
|
||||
pFlags.BoolVar(&useSyslog, "syslog", false, "Output logging information to syslog as well as the console (default false)")
|
||||
pFlags.BoolVar(&podmanConfig.Syslog, "syslog", false, "Output logging information to syslog as well as the console (default false)")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,12 +6,13 @@ package main
|
||||
import (
|
||||
"log/syslog"
|
||||
|
||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||
"github.com/sirupsen/logrus"
|
||||
logrusSyslog "github.com/sirupsen/logrus/hooks/syslog"
|
||||
)
|
||||
|
||||
func syslogHook() {
|
||||
if !useSyslog {
|
||||
if !registry.PodmanConfig().Syslog {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -6,13 +6,16 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||
)
|
||||
|
||||
func syslogHook() {
|
||||
if !useSyslog {
|
||||
if !registry.PodmanConfig().Syslog {
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Fprintf(os.Stderr, "Logging to Syslog is not supported on Windows")
|
||||
fmt.Fprintf(os.Stderr, "Logging to Syslog is not supported on %s", runtime.GOOS)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
@ -1108,7 +1108,7 @@ func (r *ConmonOCIRuntime) createOCIContainer(ctr *Container, restoreOptions *Co
|
||||
args = append(args, "--no-pivot")
|
||||
}
|
||||
|
||||
exitCommand, err := specgenutil.CreateExitCommandArgs(ctr.runtime.storageConfig, ctr.runtime.config, logrus.IsLevelEnabled(logrus.DebugLevel), ctr.AutoRemove(), false)
|
||||
exitCommand, err := specgenutil.CreateExitCommandArgs(ctr.runtime.storageConfig, ctr.runtime.config, ctr.runtime.syslog || logrus.IsLevelEnabled(logrus.DebugLevel), ctr.AutoRemove(), false)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ type PodmanConfig struct {
|
||||
Remote bool // Connection to Podman API Service will use RESTful API
|
||||
RuntimePath string // --runtime flag will set Engine.RuntimePath
|
||||
RuntimeFlags []string // global flags for the container runtime
|
||||
Syslog bool // write to StdOut and Syslog, not supported when tunneling
|
||||
Syslog bool // write logging information to syslog as well as the console
|
||||
Trace bool // Hidden: Trace execution
|
||||
URI string // URI to RESTful API Service
|
||||
|
||||
|
@ -275,8 +275,7 @@ func getRuntime(ctx context.Context, fs *flag.FlagSet, opts *engineOpts) (*libpo
|
||||
options = append(options, libpod.WithDatabaseBackend(cfg.ContainersConf.Engine.DBBackend))
|
||||
}
|
||||
|
||||
// no need to handle the error, it will return false anyway
|
||||
if syslog, _ := fs.GetBool("syslog"); syslog {
|
||||
if cfg.Syslog {
|
||||
options = append(options, libpod.WithSyslog())
|
||||
}
|
||||
|
||||
|
@ -1261,4 +1261,18 @@ search | $IMAGE |
|
||||
done < <(parse_table "$tests")
|
||||
}
|
||||
|
||||
@test "podman --syslog passed to conmon" {
|
||||
skip_if_remote "--syslog is not supported for remote clients"
|
||||
skip_if_journald_unavailable
|
||||
|
||||
run_podman run -d -q --syslog $IMAGE sleep infinity
|
||||
cid="$output"
|
||||
|
||||
run_podman container inspect $cid --format "{{ .State.ConmonPid }}"
|
||||
conmon_pid="$output"
|
||||
is "$(< /proc/$conmon_pid/cmdline)" ".*--exit-command-arg--syslog.*" "conmon's exit-command has --syslog set"
|
||||
|
||||
run_podman rm -f -t0 $cid
|
||||
}
|
||||
|
||||
# vim: filetype=sh
|
||||
|
Reference in New Issue
Block a user