Skip to content

Instantly share code, notes, and snippets.

@hyunto
Created July 26, 2019 08:26
Show Gist options
  • Save hyunto/cf7853e9a6ff67c7658ea85b481b76a8 to your computer and use it in GitHub Desktop.
Save hyunto/cf7853e9a6ff67c7658ea85b481b76a8 to your computer and use it in GitHub Desktop.
SysVinit script for jenkins-slave
#!/bin/bash
#
# jenkins-slave Start/Stop the jenkins-slave daemon.
#
# chkconfig: 2345 90 60
# description: Jenkins Slave
### BEGIN INIT INFO
# Provides: crond crontab
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2345
# Default-Stop: 90
# Short-Description: run jenkin-slave daemon
# Description: Jenkins Slave
### END INIT INFO
# Source function library.
. /etc/init.d/functions
# User defiend variables.
NAME="jenkins-slave"
USER="root"
NODE_NAME="slave"
BASEDIR="/root"
WORKDIR="$BASEDIR/$NAME"
PIDFILE="/var/run/$NAME.pid"
JAVA="/usr/bin/java"
AGENT="$WORKDIR/agent.jar"
JNLP_URL="http://192.168.104.10:8080/jenkins/computer/$NODE_NAME/slave-agent.jnlp"
SECRET="2e58cd9326b418fe936dbd8f01baeb6dd2d3686174d89080aace15eed877f5b8"
OPTIONS="-failIfWorkDirIsMissing"
COMMAND="$JAVA -jar $AGENT -jnlpUrl $JNLP_URL -secret $SECRET -workDir $WORKDIR $OPTIONS >/dev/null 2>&1"
start() {
echo -n "Starting ${NAME}: "
daemon --check="$NAME" --user="$USER" --pidfile="$PIDFILE" "$COMMAND &"
RETVAL=$?
if [ $RETVAL -eq 0 ];
then
echo `ps -o pid,cmd | grep [j]enkins-slave | awk '{print $1}'` > $PIDFILE
touch /var/lock/subsys/$NAME && success || failure
echo
else
rm -f $PIDFILE
rm -f /var/lock/subsys/$NAME
exit 7;
fi
}
stop() {
echo -n "Shutting down ${NAME}: "
killproc -p ${PIDFILE}
RETVAL=$?
echo
[ ${RETVAL} -eq 0 ] && rm -f /var/lock/subsys/${NAME}
return ${RETVAL}
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${PIDFILE} ${NAME}
;;
restart)
stop
start
;;
*)
echo "Usage: ${NAME} {start|stop|status|restart}"
exit 1
;;
esac
exit $?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment