在Linux上识别正在运行的syslog守护程序的最佳方法是什么?

5
我正在编写Linux shell脚本(sh,bash或csh),以确定正在运行哪个syslog守护进程。 最好的方法是什么? 由于我只考虑RHEL和基于rpm的发行版,因此可以忽略Debian及其衍生产品。
3个回答

3
据我所知,syslog-ngrsyslog(默认情况下)是RHEL上唯一可用的选项。您可以探测进程空间,查看当前持有/var/log/syslog的进程或者简单地检查安装了哪个系统日志守护程序(尽管可能同时安装了两者)。
$ lsof /var/log/messages /var/log/syslog 2>&1 | grep syslog
$ rpm -q rsyslog syslog-ng
$ pgrep -u root syslog | xargs ps -p

1

可以解析lsof的输出,以查看哪些进程打开了文件/var/log/syslog,一个非常简单的示例如下:

sudo lsof | grep /var/log/syslog | cut -f1 -d' '

如果您正在使用单个发行版,则可能有更优雅的方法来进行检查。


0
在基于Debian的系统上,运行以下脚本以查看已安装的内容:
dpkg-query -l '*syslog*' | grep ii

这将会给你类似于以下的输出

ii  rsyslog  7.4.4-1ubuntu2.3  i386  reliable system and kernel logging daemon

这样你就不必要去查找文件了。希望能对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接