snmpd
の default の logging に関する option が -Lsd
で,syslog の LOG_DAEMON
に送るような設定になっている.これが結構 verbose (LOG_NOTICE
が送られる)なので,-LSwd
に変更して LOG_WARNING
の level に変更したい,という話.
以前は /etc/default/snmpd
で設定できていたのだが,/etc/init.d/snmpd
が /etc/default/snmpd
を source しているように見せかけて,実は systemctl
が呼び出される仕組みが導入されており,/etc/default/snmpd
を変更したところで設定が反映されない./etc/default/snmpd
にも以下のようにそんなことが書いてある.
# This file controls the behaviour of /etc/init.d/snmpd
# but not of the corresponding systemd service file.
# If needed, create an override file in
# /etc/systemd/system/snmpd.service.d/local.conf
# see man 5 systemd.unit and man 5 systemd.service
で,/etc/systemd/system/snmpd.service.d/local.conf
を作成するというのはいわゆる drop-in ファイルを作るというもので,sudo systemctl edit snmpd.service
で作成される /etc/systemd/system/snmpd.service.d/override.conf
と同様(local.conf
でも問題ない; man systemd.unit
も local.conf
で説明されている).
drop-in については man systemd.unit
が詳しい.
Note that for drop-in files, if one wants to remove entries from a setting that is parsed as a list (and is not a dependency), such as AssertPathExists= (or e.g. ExecStart= in service units), one needs to first clear the list before re-adding all entries except the one that is to be removed. Dependencies (After=, etc.) cannot be reset to an empty list, so dependencies can only be added in drop-ins. If you want to remove dependencies, you have to override the entire unit.
あと,drop-in ファイルを用意したあとは sudo systemctl daemon-reload
が必要(sudo systemctl edit
で編集した場合は不要; see man systemctl
).