我想通过阅读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
?
/dev/log
,因此该部分是清晰的,设备在读取之前必须是干净的。 sudo lsof /dev/log
没有显示任何内容。
围绕此主题的 A answer in a Java thread提到syslog
之前应该关闭。我也尝试过,lsof | grep "/dev/log"
是空的,但我仍然得到了错误
是不是可以从/dev/log
读取多个进程? 德尔>