Environment
SUSE Linux Enterprise Server 12 Service Pack 2 (SLES 12 SP2)
eDirectorySituation
eDirectory 8.8.8.11 installed using the non root tarball install and running as a non root user.
Initial installation was on SLES 11 SP4.
Operating system was upgraded to SLES 12 SP3
systemctl start user@####.service (#### is the uid of the user) had been run per the documentation to start systemd specific to the non root instance user.
Unable to start ndsd using ndsmanage. Attempt to start returned the error: Failed to connect to bus: no such file or directory
Attempts to create a new instance as the same non root user using ndsmanage result in the following error:
Starting the service 'ndsd'... Error: Cannot start 'ndsd', start manually.ERROR: ndsconfig return value = 10.
Resolution
Option 1: Use ssh to login as the non root user before using ndsmanage to start ndsd.
Option 2: Configure the server to start the systemd user instance and use 'su - <username>'.
- Run the following command as root:
# loginctl enable-linger <username>
- Append the following line to the user's ~/.profile file:
export XDG_RUNTIME_DIR=/run/user/`id -u`
With these steps completed, ndsmanage will function properly when changing to the service account using 'su -'.
Cause
The systemd instance of the non root user running the eDirectory instance was not running.
The systemd user instance is started after the initial login as the user and killed after the last session of the user is closed.
'su' was being used to change to the non root user. Changing to the non root user in this method, doesn't start the user's systemd instance.