When using RHEL7 the radosgw daemon needs to start under systemd.
Check for systemd running on PID 1. If it is then start
the daemon using: systemd-run -r <cmd>. pidof returns null
as it is executed too quickly, adding one second of sleep and
script reports startup correctly.
Signed-off-by: JuanJose 'JJ' Galvez <jgalvez@redhat.com>
daemon_is_running() {
daemon=$1
+ sleep 1
if pidof $daemon >/dev/null; then
echo "$daemon is running."
exit 0
exit 1
fi
+# detect systemd
+SYSTEMD=0
+grep -qs systemd /proc/1/comm && SYSTEMD=1
+
case "$1" in
start)
echo "Starting radosgw instance(s)..."
chown $user $log_file
fi
- #start-stop-daemon --start -u $user -x $RADOSGW -- -n $name
- daemon --user="$user" "ulimit -n 32768; $RADOSGW -n $name"
+ if [ $SYSTEMD -eq 1 ]; then
+ systemd-run -r bash -c "ulimit -n 32768; $RADOSGW -n $name"
+ else
+ #start-stop-daemon --start -u $user -x $RADOSGW -- -n $name
+ daemon --user="$user" "ulimit -n 32768; $RADOSGW -n $name"
+ fi
echo "Starting $name..."
done
daemon_is_running $RADOSGW