fi
if [[ $(whoami) != "root" ]]; then
- if sudo -l | grep "requiretty"; then
+ if sudo -l | grep "requiretty | grep -v "\!requiretty"; then
echo "please comment out Defaults requiretty from /etc/sudoers"
exit 1
fi
#make pid dir
pidfile="/var/run/$jenkinsuser/jenkins_jnlp_pid"
if ! [ -d /var/run/$jenkinsuser/ ]; then
- mkdir /var/run/$jenkinsuser/
- chown $jenkinsuser:$jenkinsuser /var/run/$jenkinsuser/
+ sudo mkdir /var/run/$jenkinsuser/
+ sudo chown $jenkinsuser:$jenkinsuser /var/run/$jenkinsuser/
fi
if [[ $skip_monit != true ]]; then
exit 1
fi
+ chown=$(type -p chown)
+ mkdir=$(type -p mkdir)
+
makemonit () {
echo "Writing the following as monit config:"
cat << EOF | tee $monitconfdir/jenkins
+check directory jenkins_piddir path /var/run/$jenkinsuser
+if does not exist then exec "$mkdir -p /var/run/$jenkinsuser"
+if failed uid $jenkinsuser then exec "$chown $jenkinsuser /var/run/$jenkinsuser"
+if failed gid $jenkinsuser then exec "$chown :$jenkinsuser /var/run/$jenkinsuser"
+
check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid
start program = "/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds"
stop program = "/bin/bash -c '/bin/kill \$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)'"
+depends on jenkins_piddir
EOF
}
if [[ -f $monitconfdir/jenkins ]]; then
#test for diff
if [[ "$(diff $monitconfdir/jenkins <(echo "\
+check directory jenkins_piddir path /var/run/$jenkinsuser
+if does not exist then exec \"$mkdir -p /var/run/$jenkinsuser\"
+if failed uid $jenkinsuser then exec \"$chown $jenkinsuser /var/run/$jenkinsuser\"
+if failed gid $jenkinsuser then exec \"$chown :$jenkinsuser /var/run/$jenkinsuser\"
+
check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid
start program = \"/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds\"
-stop program = \"/bin/bash -c '/bin/kill \$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)'\"\
+stop program = \"/bin/bash -c '/bin/kill \$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)'\"
+depends on jenkins_piddir\
") )" ]]; then
echo "Updating monit config..."
makemonit $@
fi
fi
-if [[ $started_monit == "true" ]]; then
- wget --timestamping https://build.opnfv.org/ci/jnlpJars/slave.jar && true
- chown $jenkinsuser:$jenkinsuser slave.jar
+ if [[ $started_monit == "true" ]]; then
+ wget --timestamping https://build.opnfv.org/ci/jnlpJars/slave.jar && true
+ chown $jenkinsuser:$jenkinsuser slave.jar
- if [[ -f /var/run/$jenkinsuser/jenkins_jnlp_pid ]]; then
- echo "pid file found"
- if ! kill -0 "$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)"; then
- echo "no java process running cleaning up pid file"
- rm -f /var/run/$jenkinsuser/jenkins_jnlp_pid;
- else
- echo "java connection process found and running already running quitting."
- exit 1
+ if [[ -f /var/run/$jenkinsuser/jenkins_jnlp_pid ]]; then
+ echo "pid file found"
+ if ! kill -0 "$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)"; then
+ echo "no java process running cleaning up pid file"
+ rm -f /var/run/$jenkinsuser/jenkins_jnlp_pid;
+ else
+ echo "java connection process found and running already running quitting."
+ exit 1
+ fi
fi
- fi
- if [[ $run_in_foreground == true ]]; then
- $connectionstring
+ if [[ $run_in_foreground == true ]]; then
+ $connectionstring
+ else
+ exec $connectionstring &
+ echo $! > /var/run/$jenkinsuser/jenkins_jnlp_pid
+ fi
else
- exec $connectionstring &
- echo $! > /var/run/$jenkinsuser/jenkins_jnlp_pid
+ echo "you are ready to start monit"
+ echo "eg: service monit start"
+ echo "example debug mode if you are having problems: /usr/bin/monit -Ivv -c /etc/monit.conf "
+ exit 0
fi
-else
- echo "you are ready to start monit"
- echo "eg: service monit start"
- echo "example debug mode if you are having problems: /usr/bin/monit -Ivv -c /etc/monit.conf "
- exit 0
-fi
}
usage() {
-t test the connection string by connecting without monit
-f test firewall
-Example: $0 -j /home/jenkins/ -u jenkins -n lab1 -s 727fdefoofoofoofoofoofoofof800
+Example: $0 -j /home/jenkins -u jenkins -n lab1 -s 727fdefoofoofoofoofoofoofof800
+note: a trailing slash on -j /home/jenkins will break the script
EOF
exit 1