我有一个程序需要 syslog 才能正常运行。我正在使用版本 3.16.0 的 Alpine 容器。当我从程序 ( weewx
) 中收到多个错误时,我了解到 syslog 没有在容器中运行,因此我研究了应该如何运行它,但收效甚微。
安装openrc
(apk add --no-cache openrc
)后,我尝试将其添加为服务,因为它是建议的高山维基,但是运行后rc-update add syslogd boot
我收到此错误:
rc-update: service `syslogd' does not exist
我对服务没有太多经验,所以我决定询问。当容器启动时,让 syslogd 作为守护进程运行的正确方法应该是什么?现在为了让它运行,我手动启动它,但是让它自动运行会很棒。
谢谢!
答案1
我刚刚遇到这个问题,有点失望,因为这个问题已经 7 个月没有得到答复,而且 Alpine wiki 也没有涵盖这个问题。
- 该命令实际上是
rc-update add syslog boot
,而不是 syslogd - 如果您还没有,在 Alpine < 3.17 上,您需要添加开放资源库和busybox 初始化脚本和
apk add openrc busybox-initscripts
。在 Alpine >= 3.17 上,您可以添加单个包apk add busybox-openrc
答案2
我经历了一些奇怪的仪式以某种方式启动系统日志记录。我需要通过 PAM 服务跟踪授权。
我的命令:
run --privileged ... image
容器中的命令
apk add syslog-ng busybox-openrc
rc-update add syslog boot
rc-status
touch /run/openrc/softlevel
rc-service syslog start
rc-service syslog status
然后我跟踪文件中的日志/var/log/messages