Troubleshooting
Problem
Procedure to configure auto start for Directory Server on Red Hat Enterprise Linux 7 and 8, and SUSE Linux Enterprise Server 12 and 15 Operating Systems
Symptom
Security Directory Server provided daemons ibmdiradm and ibmslapd fail to auto start on RHEL 7 and 8, SUSE Linux Enterprise Server 12 and 15 along with system reboot or restart.
Cause
Operating systems RHEL 7, RHEL 8, SLES 12 and SLES 15, updated the method for auto starting services at boot time. Using inittab to auto start ibmslapd or ibmdiradm does not work on these operating systems.
In RHEL 7 (and RHEL 8), systemd replaces Upstart (RHEL 6) as the default init system. Systemd deprecates Upstart (RHEL 6), and also deprecated the /etc/inittab file (which is used by SDS for auto starting on AIX/Linux/Solaris platforms).
SLES 12 (and SLES 15) also no longer uses /etc/inittab file.
Environment
Red Hat Enterprise Linux 7 and 8, and SUSE Linux Enterprise Server 12 and 15
Resolving The Problem
The following step by step instructions provides details on how to enable auto start for ibmslapd and ibmdiradm processes of an SDS instance on RHEL 7 and 8 or SLES 12 and 15:
- Find the instance name for which the auto start is required, by using the command "idsilist -a":
(in this example the instance name is sdsinst1)
# /opt/ibm/ldap/V6.4/sbin/idsilist -a Directory server instance(s): -------------------------------------- Instance 1: Name: sdsinst1 Version: 6.4 Location: /home/sdsinst1 Description: TDS IP Addresses: All available Port: 389 Secure Port: 636 Admin Server Port: 3538 Admin Server Secure Port: 3539 Type: Directory Server
- Create a systemd unit file for ibmslapd auto start in the systemd folder:
/etc/systemd/system/ibmslapd_<ISDS Instance Name>.service
Example:/etc/systemd/system/ibmslapd_sdsinst1.service
- Edit the systemd unit file and put the following contents (substitute appropriate value for <ISDS_Instance_Name>).
If there are changes needed to any ulimits, ulimits can also be set in the "[Service]" stanza of the *.service file.:# Start of service file [Unit] Description=IBM Security Directory Server <ISDS_Instance_Name> After=network.target [Service] Type=forking ExecStart=/opt/IBM/ldap/V6.4/sbin/ibmslapd -I <ISDS_Instance_Name> -n ExecStop=/opt/IBM/ldap/V6.4/sbin/ibmslapd -I <ISDS_Instance_Name> -k LimitNOFILE=<numeric value or "infinity"> LimitCORE=<numeric value or "infinity"> KillMode=process [Install] WantedBy=multi-user.target # End of service file
Example:# Start of service file [Unit] Description=IBM Security Directory Server sdsinst1 After=network.target [Service] Type=forking ExecStart=/opt/IBM/ldap/V6.4/sbin/ibmslapd -I sdsinst1 -n ExecStop=/opt/IBM/ldap/V6.4/sbin/ibmslapd -I sdsinst1 -k LimitNOFILE=65536 LimitCORE=infinity KillMode=process [Install] WantedBy=multi-user.target # End of service file
- Enable and start the service for ibmslapd process of the instance:
# systemctl enable ibmslapd_<ISDS_Instance_Name>.service # systemctl start ibmslapd_<ISDS_Instance_Name>.service
Example:# systemctl enable ibmslapd_sdsinst1.service # systemctl start ibmslapd_sdsinst1.service
- Similarly, create a systemd unit file for ibmdiradm auto start in systemd folder:
/etc/systemd/system/ibmdiradm_<ISDS Instance Name>.service
Example:/etc/systemd/system/ibmdiradm_sdsinst1.service
- Edit the systemd unit file and put the following contents (substitute appropriate value for <ISDS_Instance_Name>):
# Start of service file [Unit] Description=IBM Security Directory Admin Server <ISDS_Instance_Name> After=network.target [Service] Type=forking ExecStart=/opt/IBM/ldap/V6.4/sbin/ibmdiradm -I <ISDS_Instance_Name> ExecStop=/opt/IBM/ldap/V6.4/sbin/ibmdiradm -I <ISDS_Instance_Name> -k KillMode=process [Install] WantedBy=multi-user.target # End of service file
Example:# Start of service file [Unit] Description=IBM Security Directory Admin Server sdsinst1 After=network.target [Service] Type=forking ExecStart=/opt/IBM/ldap/V6.4/sbin/ibmdiradm -I sdsinst1 ExecStop=/opt/IBM/ldap/V6.4/sbin/ibmdiradm -I sdsinst1 -k KillMode=process [Install] WantedBy=multi-user.target # End of service file
- Enable and start the service for ibmdiradm process of the instance:
# systemctl enable ibmdiradm_<ISDS_Instance_Name>.service # systemctl start ibmdiradm_<ISDS_Instance_Name>.service
Example:# systemctl enable ibmdiradm_sdsinst1.service # systemctl start ibmdiradm_sdsinst1.service
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSVJJU","label":"IBM Security Directory Server"},"Component":"Configuration","Platform":[{"code":"PF016","label":"Linux"}],"Version":"6.4","Edition":"","Line of Business":{"code":"LOB24","label":"Security Software"}}]
Was this topic helpful?
Document Information
Modified date:
14 December 2023
UID
swg21995976