1
1
#! /bin/sh
2
2
3
- # $FreeBSD: $
4
3
#
5
- # Based on the jenkins init script
6
- #
7
- # PROVIDE: jenkins-iojs
4
+ # PROVIDE: jenkins
8
5
# REQUIRE: LOGIN
9
6
# KEYWORD: shutdown
10
-
11
7
#
12
8
# Configuration settings for jenkins in /etc/rc.conf:
13
9
#
21
17
name=" jenkins"
22
18
rcvar=jenkins_enable
23
19
24
- load_rc_config " ${name} "
25
-
20
+ load_rc_config ${name}
26
21
27
- OSTYPE=" freebsd"
28
- NODE_COMMON_PIPE=" /home/iojs/test.pipe"
29
22
PATH=" /usr/local/libexec/ccache:/usr/local/bin:${PATH} "
23
+ NODE_COMMON_PIPE=" /home/iojs/test.pipe"
30
24
31
- jenkins_jnlpurl=" https://ci.nodejs.org/computer/{{id}}/slave-agent.jnlp"
32
- jenkins_secret=" {{secret}}"
33
25
jenkins_jar=" /home/iojs/slave.jar"
34
- jenkins_log_file=" /home/iojs/jenkins_console .log"
35
- jenkins_args=" -jnlpUrl ${jenkins_jnlpurl} -secret ${jenkins_secret} "
36
- jenkins_user= " iojs "
37
- jenkins_group= " iojs "
26
+ jenkins_log_file=" /home/${jenkins_user} / ${name} _console .log"
27
+ jenkins_args=" -jar ${jenkins_jar} \
28
+ -jnlpUrl ${jenkins_jnlpurl} \
29
+ -secret ${jenkins_secret} "
38
30
jenkins_jobs=" $( getconf NPROCESSORS_ONLN) "
39
31
40
- pidfile=" /var/run/jenkins/jenkins.pid"
32
+ # FreeBSD uses a java wrapper. Without full path pid monitoring won't work
33
+ procname=` cat /usr/local/etc/javavms | cut -d " #" -f 1`
34
+ pidfile=" /var/run/${name} /${name} .pid"
35
+ monitor_pidfile=" /var/run/${name} /${name} _monitor.pid"
41
36
command=" /usr/sbin/daemon"
42
- procname=" /usr/local/openjdk7-jre/bin/java"
43
- command_args=" -r -p ${pidfile} ${procname} -jar ${jenkins_jar} ${jenkins_args} > ${jenkins_log_file} 2>&1"
44
- env=" PATH=${PATH} JOBS=${jenkins_jobs} OSTYPE=${OSTYPE} NODE_COMMON_PIPE=${NODE_COMMON_PIPE} CC=cc CXX=c++"
37
+ command_args=" -r -p ${pidfile} -P ${monitor_pidfile} ${procname} \
38
+ ${jenkins_args} > ${jenkins_log_file} 2>&1"
39
+ env=" PATH=${PATH} JOBS=${jenkins_jobs} OSTYPE=${OSTYPE} \
40
+ NODE_COMMON_PIPE=${NODE_COMMON_PIPE} CC=cc CXX=c++"
45
41
required_files=" ${procname} ${jenkins_jar} "
46
42
47
- start_precmd=" jenkins_prestart"
48
- start_cmd=" jenkins_start"
43
+ start_precmd=" ${name} _prestart"
44
+ start_cmd=" ${name} _start"
45
+ stop_cmd=" ${name} _stop"
49
46
50
47
jenkins_prestart () {
51
48
if [ ! -f " ${jenkins_log_file} " ]; then
52
49
touch " ${jenkins_log_file} "
53
50
chown " ${jenkins_user} :${jenkins_group} " " ${jenkins_log_file} "
54
51
chmod 640 " ${jenkins_log_file} "
55
52
fi
56
- if [ ! -d " /var/run/jenkins" ]; then
57
- install -d -o " ${jenkins_user} " -g " ${jenkins_group} " -m 750 " /var/run/jenkins"
53
+ if [ ! -d ` basename ${pidfile} ` ]; then
54
+ install -d -o " ${jenkins_user} " -g " ${jenkins_group} " \
55
+ -m 750 ` basename ${pidfile} `
58
56
fi
59
57
60
58
if [ ! $jenkins_secret ]; then
@@ -64,8 +62,21 @@ jenkins_prestart() {
64
62
65
63
jenkins_start ()
66
64
{
67
- check_startmsgs && echo " Starting ${name} . "
65
+ check_startmsgs && echo -n " Starting ${name} "
68
66
su -l ${jenkins_user} -c " ${env} exec ${command} ${command_args} "
67
+ echo .
68
+ }
69
+
70
+ jenkins_stop ()
71
+ {
72
+ if [ ! -f ${pidfile} ]; then
73
+ echo " ${name} isn't running."
74
+ else
75
+ echo -n " Stopping service: ${name} "
76
+ kill ` cat ${monitor_pidfile} `
77
+ rm ${pidfile} ${monitor_pidfile}
78
+ echo .
79
+ fi
69
80
}
70
81
71
82
run_rc_command " $1 "
0 commit comments