如何使用 upstart 设置 rsyslog 的 nofile 限制?

如何使用 upstart 设置 rsyslog 的 nofile 限制?

我正在努力弄清楚如何在 Ubuntu 14.04 上设置 rsyslog 的打开文件限制。它使用 Upstart,它忽略limits.conf,但我希望能够把

limit nofile 16384 16384

按照/etc/init/rsyslog.conf建议这个 rsyslog 电子邮件列表帖子。但是完成此操作并运行后restart rsyslog,当我检查时,/proc/$RYSLOGPID/limits我可以看到“最大打开文件数”仍然是 1024 个软文件,4096 个硬文件。

script我的第一个猜测是,问题与 Upstart 脚本使用标签而不是简单的execto launch相关rsyslog,后者会执行某种花哨的分叉操作。但是,我尝试ulimit -n在该script部分中放入 a ,但无济于事,而且我还尝试删除这些script内容(它的存在纯粹是为了确保来自的内容/etc/default/rsyslog在环境中 - 除了设置RSYSLOGD_OPTIONS为 a之外,该文件是空的空字符串,所以它是一个无操作),也无济于事。

有人有什么想法吗?

完整的暴发户脚本如下:

# rsyslog - system logging daemon
#
# rsyslog is an enhanced multi-threaded replacement for the traditional
# syslog daemon, logging messages from applications

description     "system logging daemon"

start on filesystem
stop on runlevel [06]

expect fork
respawn

limit nofile 16384 16384

pre-start script
    /lib/init/apparmor-profile-load usr.sbin.rsyslogd
end script

script
    . /etc/default/rsyslog
    exec rsyslogd $RSYSLOGD_OPTIONS
end script

答案1

大卫·朗在 rsyslog 邮件列表上能够让我直接了解这一点。问题是我正在使用restart rsyslog.这才不是重新加载rsyslog.conf新贵文件。如果使用stop rsyslogand then start rsyslog,则读取文件,并且该limit nofile XXXX选项将生效。

相关内容