Starting eDirectory 8.8 SP8 errors with "SysVinit eDirectory system is not supported on this platform"

  • 7016635
  • 25-Jun-2015
  • 14-Aug-2015

Environment

NetIQ eDirectory 8.8 SP8
SUSE Linux Enterprise Server 12

Situation

Using the 8.8 SP8 Patch 4 ISO eDirectory was installed on a Suse Linux Enterprise Server 12 or Redhat 7 server.  When starting NDSD using the SysVinit script, /etc/init.ndsd, the following error is returned, "SysVinit eDirectory system is not supported on this platform. Refer to documentation for eDirectory usage on this platform."
 
 
 
 

Resolution

Systemd is an init system and system manager that is becoming widely adopted by Linux distros.  The init system controls the initialization of components and services both after the loading of the Linux kernel during boot as well as while the system is running.  The systemctl command is the central management tool for controlling this new init system.
 
The eDirectory SysVinit script is not supported within a systemd environment such as SLES 12 or RH 7.  Though the script is still present it first checks to see if Systemd is running as the first process on boot (PID=1) and abort if true.
 
To start or stop eDirectory it is recommended that the ndsmanage utility be used.

Additional Information

To support multiple instances under Systemd also required the addition of pre-defined service templates.  Each instance of eDirectory will dynamically create a service file for each instance as well as the other supporting files required to run that instance.  The following new scripts can be found in /opt/novell/eDirectory/sbin:
  • pre_ndsd_start_custom: use this script for commands to be executed before the NDSD binary is called.
  • post_ndsd_start_custom: use this script for commands to be run after NDSD is loaded.
  • post_ndsd_stop_custom: use this script for commands to be run after stopping the NDSD process.
Note: Do not modify any of the factory scripts found in the sbin directory.  Instead use the custom scripts.
 
Environment variables: these must all be added to the to the pre_ndsd_start_custom script.  The exporting of variables on terminals or within the /etc/init.d/ndsd script is no longer used.

 
Some other useful Systemd commands.  Though some of the older SysVinit commands are still present for compatibility the systemctl method is the only safe one.
  • Apparmor
    • Determine if Apparmor is installed or what state its in
      • systemctl status apparmor.service
    • Disable Apparmor
      • To stop the service: systemctl stop apparmor.service
      • To disable the service: systemctl disable apparmor.service (much like performing a chkconfig but it is only moving a file around)
  • Firewall
    • To stop the firewall: systemctl stop firewalld
    • To disable the firewall: systemctl disable firewalld
  • NTP (ntpdate makes a comeback!)
    • Start NTP: systemctl start ntpd.service
    • Stop NTP: systemctl stop ntpd.service
    • Restart NTP: systemctl restart ntpd.service
  • Boot Blues
    • Find out what's taking so long to load on boot: systemd-analyze blame
  • Units installed on the system:  systemctl list-unit-files
    • *.mount files = when and how to mount and umount file systems
    • *.automount = storage handled by the automounter
    • *.service = how to handle services that used /etc/init.d in the past
    • *.socket = creates sockets to be used by associated service units
    • *.path = monitor specified files and directories through inotify
    • *.target = groups of units.  Analogous to runlevels
      • To list all available targets: systemctl --type=target --all
        • poweroff.target = init 0 = systemctl poweroff
        • rescue.target = init 1 = systemctl isolate runlevel1.target
        • multi-user.target = init 2-4
        • graphical.target = init 5 = systemctl isolate runlevel5.target
        • reboot.target = init 6 = systemctl reboot
  • Changing default runlevel = ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
  • System log file:
    • Follow the system log file: journalctl -f
    • Get events from log file for today: journalctl --since=today
  • Hostname and other information: hostnamectl
  • Date\Time with timezone and other information: timedatectl
  • Start process as a user: systemctl start appuser@1001.service
 

 
Additional considerations:
  • Non-root installations are not currently supported on Redhat 7.  RH7 does not allow processes to run as a non-root user.
  • When upgrading to the latest patch the eDirectory environment variables contained in the /etc/opt/novell/eDirectory/conf directory are lost.  These variables will have to be re-entered.  It is recommended that the environment file be backed up prior to upgrading.