2016年5月16日月曜日

RHEL7 系の slapd では SLAPD_ULIMIT_SETTINGS は使えない

RHEL6 系(CentOS 6, Scientific Linux 6 等)で、 /etc/sysconfig/slapd に
SLAPD_ULIMIT_SETTINGS="-n 4096" とか指定して too many open files の対策
をしていた人もいると思うが、RHEL7 だとこれは使えない。疑う人は
/proc/<pid>/limits で確認してみる。

この SLAPD_ULIMIT_SETTINGS は slapd が見る環境変数じゃなくて、RHEL6 系
の init.d 下のスクリプトが見てちょこちょこやってただけということで。

なので、systemd 的には ulimit -n な設定は /etc/systemd/system/slapd.service
に LimitNOFILE で定義する。ファイル編集後は systemd daemon-reload を忘れずに。

# /usr/lib/systemd/system/slapd.service を直してしまうと、おそらく update 時
# に上書きされる。これは openldap-servers の config ファイル扱いになってない。

# cp /usr/lib/systemd/system/slapd.service /etc/systemd/system/
# vi /etc/systemd/system/
  : (snip) 
[Service]
Type=forking
  : (snip)
ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS
LimitNOFILE=4096 
  : (snip)  

1 件のコメント:

  1. 自己コメント
    drop-in を使えば良いと今更気づく。

    # mkdir /etc/systemd/system/slapd.service.d
    # echo '[Service]'$'\n''LimitNOFILE=8192' > /etc/systemd/system/slapd.service.d/10-slapd.conf

    # systemctl daemon-reload
    # systemctl restart slapd

    とか。

    返信削除