我正在努力弄清楚如何在 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 脚本使用标签而不是简单的exec
to 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 rsyslog
and then start rsyslog
,则读取文件,并且该limit nofile XXXX
选项将生效。