cmr*_*rgo 7 command-line syslog virtualmin
在我的机器 (16.04.1) 上,似乎缺少 /dev/log。它可能一直不见了。
我在这里寻求帮助的真正原因是我将 virtualmin 与 csf 一起使用并且该SYSLOG_CHECK选项总是失败(即使操作系统仍然是 14.04 可信赖的)。
这是我运行记录器时发生的情况:
# logger hi there
logger: socket /dev/log: No such file or directory
Run Code Online (Sandbox Code Playgroud)
根据这个问题,我还尝试了“python”的做事方式:
# python -c 'import syslog; syslog.syslog("Hello World")'
(nothing is outputted, or appears in syslog)
Run Code Online (Sandbox Code Playgroud)
所以,看着/dev/文件夹,我注意到那里根本没有“日志”。
我检查了另一台机器(v14.04),它有: srw-rw-rw- 1 root root 0 Dec 16 20:34 log=
两台机器之间的主要区别在于,前者是从 vultr.com 启动的实例(使用他们提供的 cloud-init 感知安装),而后者是使用 ubuntu ISO(很久以前)的机器(可以工作) )。
所以,对于这个问题:我该如何解决为什么我没有/dev/log某个应用程序 (csf) 可能试图写入的文件的问题?请注意,还有其他消息出现在 中/var/log/syslog,所以这让我有点困惑。
任何帮助表示赞赏。
编辑:
/lib/systemd/system/systemd-journald-dev-log.socket 的内容:
[Unit]
Description=Journal Socket (/dev/log)
Documentation=man:systemd-journald.service(8) man:journald.conf(5)
DefaultDependencies=no
Before=sockets.target
IgnoreOnIsolate=yes
[Socket]
Service=systemd-journald.service
ListenDatagram=/run/systemd/journal/dev-log
Symlinks=/dev/log
SocketMode=0666
PassCredentials=yes
PassSecurity=yes
ReceiveBuffer=8M
SendBuffer=8M
Run Code Online (Sandbox Code Playgroud)
检查你是否有/run/systemd/journal/dev-log;它应该是一个套接字:
$ ls -l /run/systemd/journal/dev-log
srw-rw-rw- 1 root root 0 Dec 16 09:17 /run/systemd/journal/dev-log
Run Code Online (Sandbox Code Playgroud)
如果这检查出来,那么您可以简单地从/dev/logto 建立一个符号链接/run/systemd/journal/dev-log:
sudo ln -s /run/systemd/journal/dev-log /dev/log
Run Code Online (Sandbox Code Playgroud)