diff options
Diffstat (limited to 'src/sysv')
-rw-r--r-- | src/sysv/sssd.in | 15 | ||||
-rw-r--r-- | src/sysv/systemd/sssd.service.in | 8 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/sysv/sssd.in b/src/sysv/sssd.in index 5109148ac..385785e02 100644 --- a/src/sysv/sssd.in +++ b/src/sysv/sssd.in @@ -40,6 +40,8 @@ SSSD=@sbindir@/sssd LOCK_FILE=@localstatedir@/lock/subsys/sssd PID_FILE=@localstatedir@/run/sssd.pid +TIMEOUT=15 + start() { [ -x $SSSD ] || exit 5 echo -n $"Starting $prog: " @@ -47,6 +49,19 @@ start() { RETVAL=$? echo [ "$RETVAL" = 0 ] && touch $LOCK_FILE + + # Wait for pidfile creation or timeout + sec=0 + [ "$RETVAL" = 0 ] && while [ $sec -lt $TIMEOUT -a ! -f $PID_FILE ] + do + sleep 1 + sec=$(($sec+1)) + done + + if [ "$sec" = "$TIMEOUT" ]; then + RETVAL=-1 + fi + return $RETVAL } diff --git a/src/sysv/systemd/sssd.service.in b/src/sysv/systemd/sssd.service.in index a4f9125b5..05cfd3705 100644 --- a/src/sysv/systemd/sssd.service.in +++ b/src/sysv/systemd/sssd.service.in @@ -6,11 +6,9 @@ Wants=nss-user-lookup.target [Service] EnvironmentFile=-@environment_file@ -ExecStart=@sbindir@/sssd -D -f -# These two should be used with traditional UNIX forking daemons -# consult systemd.service(5) for more details -Type=forking -PIDFile=@localstatedir@/run/sssd.pid +ExecStart=@sbindir@/sssd -i -f +Type=notify +NotifyAccess=main [Install] WantedBy=multi-user.target |