如何阅读/ dev / log?

时间:2016-11-24 13:25:33

标签: python linux python-3.x unix datagram

我想通过阅读syslog直接访问来自Python的/dev/log消息。

我(非常有限)的理解是,正确的方法是从中读取绑定数据报套接字。

import socket

sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
sock.bind('/dev/log')
sock.listen(1)
while True:
    data, addr = sock.recvfrom(1024)
    print(data)

显然正在使用/dev/log

Traceback (most recent call last):
  File "readlog.py", line 4, in <module>
    sock.bind('/dev/log')
OSError: [Errno 98] Address already in use

我应该如何阅读Python中的/dev/log

编辑:根据@ Barmar的评论 - 只有一个进程可以访问/dev/log,因此该部分是清晰的,设备在读取之前必须是干净的。 sudo lsof /dev/log没有显示任何内容。

围绕此主题的

A answer in a Java thread提到syslog之前应该关闭。我也尝试过,lsof | grep "/dev/log"是空的,但我仍然得到了错误 是不是可以从/dev/log读取多个进程?

0 个答案:

没有答案