当 rsyslogd 守护进程停止时,新的系统日志消息会发生什么?
What happens to the new syslog messages when rsyslogd daemon is stopped?
我试图在许多地方搜索此内容以及 documents/man 页的 openlog()、syslog(0、rsyslogd(8),但找不到答案。
我的问题是,如果 rsyslogd 已停止或尚未启动,那么新的系统日志消息会丢失吗?或者 rsyslogd 在启用后稍后从 /dev/log 获取它们?
我的测试是:
在 运行 系统上,rsyslog 是 运行。现在,执行以下操作:
- logger -p local7.notice "my custom message1"
- grep 消息 1 | /var/log/messages ----> 成功
- 停止 rsyslogd 进程
- logger -p local7.notice "My other custom message2"
- 现在,启动 rsyslogd 守护进程
- grep 消息 2 | /var/log/messages ----> 失败
我从 openlog(3) 和 syslog(3) 手册页了解到,为 /dev/log 文件打开了套接字,如果在将消息发送到 syslog 时出现错误(因为 rsyslogd 不是 运行) 然后关闭连接(如果您使用了 LOG_CONS/LOG_PERROR,消息将打印在 console/stderror 上)。
谁能告诉我:
- 有什么方法可以让 rsyslogd 在 syslog 文件出现时获取所有这些消息?
- 如果不是默认情况下,是否有任何系统调用、命令etc.etc.way可以做到这一点??
提前致谢。
-新
默认情况下不会发生。不过,您可以使用 'cat' 命令并将其通过管道传输到记录器以获取它们。像下面这样的东西应该可以工作。
cat your.log | logger -n yourserver
您也可以使用类似于 'cat' 的 'tail' 命令。
我试图在许多地方搜索此内容以及 documents/man 页的 openlog()、syslog(0、rsyslogd(8),但找不到答案。
我的问题是,如果 rsyslogd 已停止或尚未启动,那么新的系统日志消息会丢失吗?或者 rsyslogd 在启用后稍后从 /dev/log 获取它们?
我的测试是:
在 运行 系统上,rsyslog 是 运行。现在,执行以下操作:
- logger -p local7.notice "my custom message1"
- grep 消息 1 | /var/log/messages ----> 成功
- 停止 rsyslogd 进程
- logger -p local7.notice "My other custom message2"
- 现在,启动 rsyslogd 守护进程
- grep 消息 2 | /var/log/messages ----> 失败
我从 openlog(3) 和 syslog(3) 手册页了解到,为 /dev/log 文件打开了套接字,如果在将消息发送到 syslog 时出现错误(因为 rsyslogd 不是 运行) 然后关闭连接(如果您使用了 LOG_CONS/LOG_PERROR,消息将打印在 console/stderror 上)。
谁能告诉我:
- 有什么方法可以让 rsyslogd 在 syslog 文件出现时获取所有这些消息?
- 如果不是默认情况下,是否有任何系统调用、命令etc.etc.way可以做到这一点??
提前致谢。
-新
默认情况下不会发生。不过,您可以使用 'cat' 命令并将其通过管道传输到记录器以获取它们。像下面这样的东西应该可以工作。
cat your.log | logger -n yourserver
您也可以使用类似于 'cat' 的 'tail' 命令。