我正在尝试为OpenLDAP编写服务文件。到目前为止我得到的是:
[Unit]
Description=OpenLDAP server daemon
After=network.target
[Service]
Type=forking
PIDFile=/var/run/slapd/slapd.pid
ExecStartPre=-/bin/mkdir /var/run/slapd
ExecStartPre=/bin/chown openldap:openldap /var/run/slapd
ExecStart=/srv/openldap-latest/lib/slapd -h "ldap:/// ldaps:/// ldapi:///" -u openldap -g openldap -F /etc/ldap/slapd.d
[Install]
WantedBy=multi-user.target
问题是“-F /etc/ldap/slapd.d”位。首次设置OpenLDAP时,该目录不存在,因此您必须指定“-f /etc/ldap/slapd.conf”。但是,我无法看到如何使用systemd执行此操作。
一个选项可能是定义两个不同的单位 - 一个在slapd.d存在时启动,一个在slapd.d不存在时启动 - 但是服务仍然需要被调用相同的东西,否则管理员会变得非常困惑,所以我不认为这个想法有用。
我该如何解决这个问题?
答案 0 :(得分:0)
添加如何:
ExecStartPre=-/bin/mkdir /etc/ldap/slapd.d