envoy
fails to load as system daemon trying to access /dev/stdout
#1746
Labels
bug
Something isn't working
The example config file specifies
/dev/stdout
for logging, which is a pseudo-device that only exists when run interactively.Expected Behavior
The example config file should use a more generic output specifier for logs that works for interactive and non-interactive processes.
Current Behavior
Possible Solution
I don't know the envoy config, but I imagine that there's a more generic way to specify the access log that works both interactively and with init systems.
Update: Well, if I'm reading the github issues correctly, the envoy team are just being total donks about only supporting file pathnames and not supporting stdout.
(It's hard to believe that that's really the case but then again, the refusal of project maintainers to work with standards that have existed before they were born never ceases to surprise me...)
If that's really the case, then the only solution is to run it in a subshell with the
pipefail
option:It seems that this is because
/dev/stdout
is a socket, not a file, but using a shell redirect opens it in such a way that it can be used by the child process.Steps to Reproduce (for bugs)
~/.config/envoy/config.yaml
:/etc/systemd/system/envoy.service
:Context
Trying to install envoy in a way that in runs on boot without becoming an envoy expert.
The FileAccessLog documentation doesn't mention the path config:
https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#configuration
See also:
Your Environment
Ubuntu 22.04 LTS
The text was updated successfully, but these errors were encountered: