From ddd52e87b25a6861d3b758a40d8b3693a751dc4d Mon Sep 17 00:00:00 2001 From: JuanJose 'JJ' Galvez Date: Sun, 14 Sep 2014 20:38:20 -0700 Subject: [PATCH] init-radosgw.sysv: Support systemd for starting the gateway 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 . 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 --- src/init-radosgw.sysv | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/init-radosgw.sysv b/src/init-radosgw.sysv index ab6b250738028..dd3dbb08ada81 100644 --- a/src/init-radosgw.sysv +++ b/src/init-radosgw.sysv @@ -15,6 +15,7 @@ PATH=/sbin:/bin:/usr/bin daemon_is_running() { daemon=$1 + sleep 1 if pidof $daemon >/dev/null; then echo "$daemon is running." exit 0 @@ -44,6 +45,10 @@ if [ ! -x "$RADOSGW" ]; then exit 1 fi +# detect systemd +SYSTEMD=0 +grep -qs systemd /proc/1/comm && SYSTEMD=1 + case "$1" in start) echo "Starting radosgw instance(s)..." @@ -79,8 +84,12 @@ case "$1" in 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 -- 2.39.5