From e45e26d16e3f3161e3256bb27465fd71a684a59b Mon Sep 17 00:00:00 2001 From: Christian Riesen Date: Wed, 14 May 2014 13:59:08 +0200 Subject: [PATCH 1/3] Change checking for running runners to pid file --- lib/support/init.d/gitlab_ci_runner | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/support/init.d/gitlab_ci_runner b/lib/support/init.d/gitlab_ci_runner index a8a2492..d7d0ba9 100644 --- a/lib/support/init.d/gitlab_ci_runner +++ b/lib/support/init.d/gitlab_ci_runner @@ -25,11 +25,22 @@ INIT_LOG="/var/log/gitlab_ci_runner.log" check_pid() { # Number of registered runners in PID file - [ -f $RUNNERS_PID ] && RUNNERS_REGISTERED=`cat $RUNNERS_PID | wc -l` - - # Number of active runner processes - RUNNERS_RUNNING=`ps -ef | grep "$PROCESS_NAME" | grep -v grep | wc -l` - + RUNNERS_REGISTERED=0 + # Number of active runner processes from PID file + RUNNERS_RUNNING=0 + + if [ -f $RUNNERS_PID ]; then + # Registered + RUNNERS_REGISTERED=`cat $RUNNERS_PID | wc -l` + + # Running + while read pid; do + if [ -d /proc/$pid ]; then + # Process is running + ((RUNNERS_RUNNING++)) + fi + done < $RUNNERS_PID + fi echo "Number of registered runners in PID file=$RUNNERS_REGISTERED" echo "Number of running runners=$RUNNERS_RUNNING" From 6dc83424380ed1d8904adeccf9fa7bb2f9d68bc2 Mon Sep 17 00:00:00 2001 From: Christian Riesen Date: Wed, 14 May 2014 14:03:10 +0200 Subject: [PATCH 2/3] Cleanup whitespace --- lib/support/init.d/gitlab_ci_runner | 170 ++++++++++++++-------------- 1 file changed, 84 insertions(+), 86 deletions(-) diff --git a/lib/support/init.d/gitlab_ci_runner b/lib/support/init.d/gitlab_ci_runner index d7d0ba9..4e91408 100644 --- a/lib/support/init.d/gitlab_ci_runner +++ b/lib/support/init.d/gitlab_ci_runner @@ -24,99 +24,99 @@ RUNNERS_RUNNING=0 INIT_LOG="/var/log/gitlab_ci_runner.log" check_pid() { - # Number of registered runners in PID file - RUNNERS_REGISTERED=0 - # Number of active runner processes from PID file - RUNNERS_RUNNING=0 - - if [ -f $RUNNERS_PID ]; then - # Registered - RUNNERS_REGISTERED=`cat $RUNNERS_PID | wc -l` - - # Running - while read pid; do - if [ -d /proc/$pid ]; then - # Process is running - ((RUNNERS_RUNNING++)) - fi - done < $RUNNERS_PID - fi + # Number of registered runners in PID file + RUNNERS_REGISTERED=0 + # Number of active runner processes from PID file + RUNNERS_RUNNING=0 + + if [ -f $RUNNERS_PID ]; then + # Registered + RUNNERS_REGISTERED=`cat $RUNNERS_PID | wc -l` + + # Running + while read pid; do + if [ -d /proc/$pid ]; then + # Process is running + ((RUNNERS_RUNNING++)) + fi + done < $RUNNERS_PID + fi - echo "Number of registered runners in PID file=$RUNNERS_REGISTERED" - echo "Number of running runners=$RUNNERS_RUNNING" + echo "Number of registered runners in PID file=$RUNNERS_REGISTERED" + echo "Number of running runners=$RUNNERS_RUNNING" } execute() { - sudo -u $APP_USER -H bash -l -c "$1" - } + sudo -u $APP_USER -H bash -l -c "$1" +} start() { - cd $APP_ROOT - check_pid - if [ "$RUNNERS_REGISTERED" -ne 0 -o "$RUNNERS_RUNNING" -ne 0 ]; then - # Program is running, Exit with error code. - echo "Error! $DESC(s) ($NAME) appear to be running already! Try stopping them first. Exiting." - exit 1 - else - if [ `whoami` = root ]; then - [ ! -f $PID_PATH ] && execute "mkdir -p $PID_PATH" - [ -f $RUNNERS_PID ] && execute "rm -f $RUNNERS_PID" - - # Spawn runners - for (( i=1; i<=$RUNNERS_NUM; i++ )) - do - # Check log file - if [ ! -f $INIT_LOG ]; then - touch $INIT_LOG - chown $APP_USER $INIT_LOG + cd $APP_ROOT + check_pid + if [ "$RUNNERS_REGISTERED" -ne 0 -o "$RUNNERS_RUNNING" -ne 0 ]; then + # Program is running, Exit with error code. + echo "Error! $DESC(s) ($NAME) appear to be running already! Try stopping them first. Exiting." + exit 1 + else + if [ `whoami` = root ]; then + [ ! -f $PID_PATH ] && execute "mkdir -p $PID_PATH" + [ -f $RUNNERS_PID ] && execute "rm -f $RUNNERS_PID" + + # Spawn runners + for (( i=1; i<=$RUNNERS_NUM; i++ )) + do + # Check log file + if [ ! -f $INIT_LOG ]; then + touch $INIT_LOG + chown $APP_USER $INIT_LOG + fi + echo "Starting runner #$i" + execute "$START_RUNNER >> $INIT_LOG 2>&1 & echo \$! >> $RUNNERS_PID" + done + + echo "SUCCESS: Started $RUNNERS_NUM $DESC(s)." fi - echo "Starting runner #$i" - execute "$START_RUNNER >> $INIT_LOG 2>&1 & echo \$! >> $RUNNERS_PID" - done - echo "SUCCESS: Started $RUNNERS_NUM $DESC(s)." fi - - fi } stop() { - check_pid - # Exit if there are no runners - if [ $RUNNERS_REGISTERED -eq 0 -a $RUNNERS_RUNNING -eq 0 ]; then - echo "No runners have been found. Exiting." - fi - - # Runners found. Check if there are any ghost runners. - KILL_GHOSTS=0; - if [ $RUNNERS_REGISTERED -ne $RUNNERS_RUNNING ]; then - echo "WARNING: Numbers of registered runners don't match number of running runners. Will try to stop them all" - echo "Registered runners=$RUNNERS_REGISTERED" - echo "Running runners=$RUNNERS_RUNNING" - KILL_GHOSTS=1; - fi - - echo -n "Trying to stop registered runners..." - if [ $RUNNERS_REGISTERED -gt 0 ]; then - execute "cat $RUNNERS_PID | xargs kill -USR2" - rm -f $RUNNERS_PID - echo "OK" - else - echo "FAILED!" - echo "Couldn't stop registered runners as there is no record of such in $RUNNERS_PID file". - fi - - if [ $KILL_GHOSTS -eq 1 ]; then - echo -ne "Trying to kill ghost runners..." - ps -C "$PROCESS_NAME" -o "%p" h | xargs kill -USR2 - [ $? -eq 0 ] && echo "OK" - else - echo "No ghost runners have been found.This is good." - fi + check_pid + # Exit if there are no runners + if [ $RUNNERS_REGISTERED -eq 0 -a $RUNNERS_RUNNING -eq 0 ]; then + echo "No runners have been found. Exiting." + fi + + # Runners found. Check if there are any ghost runners. + KILL_GHOSTS=0; + if [ $RUNNERS_REGISTERED -ne $RUNNERS_RUNNING ]; then + echo "WARNING: Numbers of registered runners don't match number of running runners. Will try to stop them all" + echo "Registered runners=$RUNNERS_REGISTERED" + echo "Running runners=$RUNNERS_RUNNING" + KILL_GHOSTS=1; + fi + + echo -n "Trying to stop registered runners..." + if [ $RUNNERS_REGISTERED -gt 0 ]; then + execute "cat $RUNNERS_PID | xargs kill -USR2" + rm -f $RUNNERS_PID + echo "OK" + else + echo "FAILED!" + echo "Couldn't stop registered runners as there is no record of such in $RUNNERS_PID file". + fi + + if [ $KILL_GHOSTS -eq 1 ]; then + echo -ne "Trying to kill ghost runners..." + ps -C "$PROCESS_NAME" -o "%p" h | xargs kill -USR2 + [ $? -eq 0 ] && echo "OK" + else + echo "No ghost runners have been found.This is good." + fi } status() { - echo "Here is what we have at the moment:" - check_pid + echo "Here is what we have at the moment:" + check_pid } ## Check to see if we are running as root first. @@ -126,25 +126,23 @@ if [ "$(id -u)" != "0" ]; then fi case "$1" in - start) + start) start ;; - stop) + stop) stop ;; - restart) + restart) stop start ;; - status) + status) status ;; - *) + *) echo "Usage: sudo service gitlab_ci_runner {start|stop|restart|status}" >&2 exit 1 ;; esac exit 0 - - From 74d7391aac20a145030b973fa4cab178c27ac554 Mon Sep 17 00:00:00 2001 From: Christian Riesen Date: Mon, 23 Jun 2014 10:18:42 +0200 Subject: [PATCH 3/3] whitespace to 2 --- lib/support/init.d/gitlab_ci_runner | 197 ++++++++++++++-------------- 1 file changed, 99 insertions(+), 98 deletions(-) diff --git a/lib/support/init.d/gitlab_ci_runner b/lib/support/init.d/gitlab_ci_runner index 4e91408..276b75e 100644 --- a/lib/support/init.d/gitlab_ci_runner +++ b/lib/support/init.d/gitlab_ci_runner @@ -24,125 +24,126 @@ RUNNERS_RUNNING=0 INIT_LOG="/var/log/gitlab_ci_runner.log" check_pid() { - # Number of registered runners in PID file - RUNNERS_REGISTERED=0 - # Number of active runner processes from PID file - RUNNERS_RUNNING=0 - - if [ -f $RUNNERS_PID ]; then - # Registered - RUNNERS_REGISTERED=`cat $RUNNERS_PID | wc -l` - - # Running - while read pid; do - if [ -d /proc/$pid ]; then - # Process is running - ((RUNNERS_RUNNING++)) - fi - done < $RUNNERS_PID - fi - - echo "Number of registered runners in PID file=$RUNNERS_REGISTERED" - echo "Number of running runners=$RUNNERS_RUNNING" + # Number of registered runners in PID file + RUNNERS_REGISTERED=0 + # Number of active runner processes from PID file + RUNNERS_RUNNING=0 + + if [ -f $RUNNERS_PID ]; then + # Registered + RUNNERS_REGISTERED=`cat $RUNNERS_PID | wc -l` + + # Running + while read pid; do + if [ -d /proc/$pid ]; then + # Process is running + ((RUNNERS_RUNNING++)) + fi + done < $RUNNERS_PID + fi + + echo "Number of registered runners in PID file=$RUNNERS_REGISTERED" + echo "Number of running runners=$RUNNERS_RUNNING" } execute() { - sudo -u $APP_USER -H bash -l -c "$1" + sudo -u $APP_USER -H bash -l -c "$1" } start() { - cd $APP_ROOT - check_pid - if [ "$RUNNERS_REGISTERED" -ne 0 -o "$RUNNERS_RUNNING" -ne 0 ]; then - # Program is running, Exit with error code. - echo "Error! $DESC(s) ($NAME) appear to be running already! Try stopping them first. Exiting." - exit 1 - else - if [ `whoami` = root ]; then - [ ! -f $PID_PATH ] && execute "mkdir -p $PID_PATH" - [ -f $RUNNERS_PID ] && execute "rm -f $RUNNERS_PID" - - # Spawn runners - for (( i=1; i<=$RUNNERS_NUM; i++ )) - do - # Check log file - if [ ! -f $INIT_LOG ]; then - touch $INIT_LOG - chown $APP_USER $INIT_LOG - fi - echo "Starting runner #$i" - execute "$START_RUNNER >> $INIT_LOG 2>&1 & echo \$! >> $RUNNERS_PID" - done - - echo "SUCCESS: Started $RUNNERS_NUM $DESC(s)." + cd $APP_ROOT + check_pid + if [ "$RUNNERS_REGISTERED" -ne 0 -o "$RUNNERS_RUNNING" -ne 0 ]; then + # Program is running, Exit with error code. + echo "Error! $DESC(s) ($NAME) appear to be running already! Try stopping them first. Exiting." + exit 1 + else + if [ `whoami` = root ]; then + [ ! -f $PID_PATH ] && execute "mkdir -p $PID_PATH" + [ -f $RUNNERS_PID ] && execute "rm -f $RUNNERS_PID" + + # Spawn runners + for (( i=1; i<=$RUNNERS_NUM; i++ )) + do + # Check log file + if [ ! -f $INIT_LOG ]; then + touch $INIT_LOG + chown $APP_USER $INIT_LOG fi + + echo "Starting runner #$i" + execute "$START_RUNNER >> $INIT_LOG 2>&1 & echo \$! >> $RUNNERS_PID" + done + + echo "SUCCESS: Started $RUNNERS_NUM $DESC(s)." fi + fi } stop() { - check_pid - # Exit if there are no runners - if [ $RUNNERS_REGISTERED -eq 0 -a $RUNNERS_RUNNING -eq 0 ]; then - echo "No runners have been found. Exiting." - fi - - # Runners found. Check if there are any ghost runners. - KILL_GHOSTS=0; - if [ $RUNNERS_REGISTERED -ne $RUNNERS_RUNNING ]; then - echo "WARNING: Numbers of registered runners don't match number of running runners. Will try to stop them all" - echo "Registered runners=$RUNNERS_REGISTERED" - echo "Running runners=$RUNNERS_RUNNING" - KILL_GHOSTS=1; - fi - - echo -n "Trying to stop registered runners..." - if [ $RUNNERS_REGISTERED -gt 0 ]; then - execute "cat $RUNNERS_PID | xargs kill -USR2" - rm -f $RUNNERS_PID - echo "OK" - else - echo "FAILED!" - echo "Couldn't stop registered runners as there is no record of such in $RUNNERS_PID file". - fi - - if [ $KILL_GHOSTS -eq 1 ]; then - echo -ne "Trying to kill ghost runners..." - ps -C "$PROCESS_NAME" -o "%p" h | xargs kill -USR2 - [ $? -eq 0 ] && echo "OK" - else - echo "No ghost runners have been found.This is good." - fi + check_pid + # Exit if there are no runners + if [ $RUNNERS_REGISTERED -eq 0 -a $RUNNERS_RUNNING -eq 0 ]; then + echo "No runners have been found. Exiting." + fi + + # Runners found. Check if there are any ghost runners. + KILL_GHOSTS=0; + if [ $RUNNERS_REGISTERED -ne $RUNNERS_RUNNING ]; then + echo "WARNING: Numbers of registered runners don't match number of running runners. Will try to stop them all" + echo "Registered runners=$RUNNERS_REGISTERED" + echo "Running runners=$RUNNERS_RUNNING" + KILL_GHOSTS=1; + fi + + echo -n "Trying to stop registered runners..." + if [ $RUNNERS_REGISTERED -gt 0 ]; then + execute "cat $RUNNERS_PID | xargs kill -USR2" + rm -f $RUNNERS_PID + echo "OK" + else + echo "FAILED!" + echo "Couldn't stop registered runners as there is no record of such in $RUNNERS_PID file". + fi + + if [ $KILL_GHOSTS -eq 1 ]; then + echo -ne "Trying to kill ghost runners..." + ps -C "$PROCESS_NAME" -o "%p" h | xargs kill -USR2 + [ $? -eq 0 ] && echo "OK" + else + echo "No ghost runners have been found.This is good." + fi } status() { - echo "Here is what we have at the moment:" - check_pid + echo "Here is what we have at the moment:" + check_pid } ## Check to see if we are running as root first. if [ "$(id -u)" != "0" ]; then - echo "This script must be run as root" - exit 1 + echo "This script must be run as root" + exit 1 fi case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - stop - start - ;; - status) - status - ;; - *) - echo "Usage: sudo service gitlab_ci_runner {start|stop|restart|status}" >&2 - exit 1 - ;; + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + status) + status + ;; + *) + echo "Usage: sudo service gitlab_ci_runner {start|stop|restart|status}" >&2 + exit 1 + ;; esac exit 0