#!/bin/bash ############################################################################## # Copyright (c) 2015 Huawei Technologies Co.,Ltd. # meimei@huawei.com # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0# ############################################################################## set -o errexit set -o nounset set -o pipefail SLAVE_CONF="/etc/default/jenkins-slave" if [ -f ${SLAVE_CONF} ] then . ${SLAVE_CONF} else echo "Error : Configuration file ($SLAVE_CONF) does not exist, details please refer to README." exit fi if [ -z "${SLAVENAME}" ] || [ -z "${TOKEN}" ] then echo "Error : Please define SLAVENAME and TOKEN values in the Configuration file ($SLAVE_CONF), details please refer to README." exit fi SLAVE_JNLP="-jnlpUrl https://build.opnfv.org/ci/computer/${SLAVENAME}/slave-agent.jnlp" JENKINS_HOME="/home/jenkins" SLAVE_JAR="${JENKINS_HOME}/slave.jar" JENKINS_SLAVE_ROOTDIR="${JENKINS_HOME}/jenkins-slave" PID_FILE="${JENKINS_SLAVE_ROOTDIR}/slave.pid" SLAVE_LOG="${JENKINS_SLAVE_ROOTDIR}/slave.log" USER="jenkins" GROUP="jenkins" JAVA_BIN="/usr/bin/java" if [ ! -f ${SLAVE_JAR} ] then echo "Error : ${SLAVE_JAR} dosenot exist, details please refer to README." exit fi [ -e ${JENKINS_SLAVE_ROOTDIR} ] || { mkdir ${JENKINS_SLAVE_ROOTDIR}; chown ${USER}:${GROUP} ${JENKINS_SLAVE_ROOTDIR};}; if [ ! -d ${JENKINS_SLAVE_ROOTDIR} ] then echo "Error : ${JENKINS_SLAVE_ROOTDIR} can not be created! Maybe there is a file with the same name of 'jenkins-slave'." exit fi usage () { cat<>${SLAVE_LOG} 2>&1" then echo "Start jenkins slave failed!" else echo "DONE." fi } stop() { echo "Stopping jenkins slave(${SLAVENAME})" if ! start-stop-daemon --stop -p ${PID_FILE} then echo "Stop jenkins slave failed!" else echo "DONE." fi rm -f ${PID_FILE} } status() { set +e pid=`ps -ef | grep "${SLAVE_JAR}" | grep -v 'grep' | awk '{print $2}'` set -e if [ -z $pid ] then echo "jenkins slave is not running!" else echo "jenkins slave is running, pid is $pid" fi } if [ $# -gt 0 ] then OPTION=$1 else echo "Please input your argument!" usage exit 1 fi case "$OPTION" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; status) status ;; *) echo "Error: $OPTION is not a valid argument" usage exit 1 ;; esac