-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #42 from jhoblitt/jshholland-debian-support
Jshholland debian support
- Loading branch information
Showing
10 changed files
with
285 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
HOSTS: | ||
debian-7.8: | ||
roles: | ||
- master | ||
platform: debian-7-amd64 | ||
box: chef/debian-7.8 | ||
hypervisor: vagrant | ||
CONFIG: | ||
type: foss |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,231 @@ | ||
#!/bin/bash | ||
# /etc/init.d/seleniumserver | ||
# debian-compatible seleniumserver startup script. | ||
# Amelia A Lewis <[email protected]> | ||
# | ||
### BEGIN INIT INFO | ||
# Provides: <%= @prog %> | ||
# Required-Start: $remote_fs $syslog $network | ||
# Required-Stop: $remote_fs $syslog $network | ||
# Default-Start: 2 3 4 5 | ||
# Default-Stop: 0 1 6 | ||
# Short-Description: Start seleniumserver at boot time | ||
# Description: Controls the selenium server engine. | ||
### END INIT INFO | ||
|
||
PATH=/bin:/usr/bin:/sbin:/usr/sbin | ||
|
||
DESC="Selenium Remote Control Server" | ||
NAME='<%= @prog %>' | ||
SCRIPTNAME=/etc/init.d/$NAME | ||
PIDFILE=/var/run/$NAME/$NAME.pid | ||
SELENIUM_USER='<%= @user %>' | ||
SELENIUM_INSTALL_ROOT='<%= @install_root %>' | ||
SELENIUM_JAR_NAME='<%= @jar_name %>' | ||
SELENIUM_JAR="${SELENIUM_INSTALL_ROOT}/jars/${SELENIUM_JAR_NAME}" | ||
SELENIUM_LOG_NAME='<%= @name %>' | ||
SELENIUM_LOG="${SELENIUM_INSTALL_ROOT}/log/${SELENIUM_LOG_NAME}_stdout.log" | ||
SELENIUM_ERROR_LOG="${SELENIUM_INSTALL_ROOT}/log/${SELENIUM_LOG_NAME}_stderr.log" | ||
SELENIUM_DISPLAY='<%= @display %>' | ||
SELENIUM_OPTIONS='<%= @options %>' | ||
HTTP_PORT=4444 | ||
SELENIUM_ARGS="-port $HTTP_PORT" | ||
SELENIUM_JAVA='<%= @java %>' | ||
|
||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME | ||
|
||
DAEMON=/usr/bin/daemon | ||
DAEMON_ARGS="--name=$NAME --inherit --output=$SELENIUM_LOG --pidfile=$PIDFILE --env='DISPLAY=${SELENIUM_DISPLAY}'" | ||
|
||
SU=/bin/su | ||
# Exit if the package is not installed | ||
[ -x "$DAEMON" ] || exit 0 | ||
|
||
# load environments | ||
if [ -r /etc/default/locale ]; then | ||
. /etc/default/locale | ||
export LANG LANGUAGE | ||
elif [ -r /etc/environment ]; then | ||
. /etc/environment | ||
export LANG LANGUAGE | ||
fi | ||
|
||
# Load the VERBOSE setting and other rcS variables | ||
. /lib/init/vars.sh | ||
|
||
# Define LSB log_* functions. | ||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. | ||
. /lib/lsb/init-functions | ||
|
||
# Make sure we run as root, since setting the max open files through | ||
# ulimit requires root access | ||
if [ `id -u` -ne 0 ]; then | ||
echo "The $NAME init script can only be run as root" | ||
exit 1 | ||
fi | ||
|
||
check_tcp_port() { | ||
local service=$1 | ||
local assigned=$2 | ||
local default=$3 | ||
|
||
if [ -n "$assigned" ]; then | ||
port=$assigned | ||
else | ||
port=$default | ||
fi | ||
|
||
count=`netstat --listen --numeric-ports | grep \:$port[[:space:]] | grep -c . ` | ||
|
||
if [ $count -ne 0 ]; then | ||
echo "The selected $service port ($port) seems to be in use by another program " | ||
echo "Please select another port to use for $NAME" | ||
return 1 | ||
fi | ||
} | ||
|
||
# | ||
# Function that starts the daemon/service | ||
# | ||
do_start() | ||
{ | ||
# the default location is /var/run/seleniumserver/seleniumserver.pid but the parent directory needs to be created | ||
mkdir `dirname $PIDFILE` > /dev/null 2>&1 || true | ||
chown $SELENIUM_USER `dirname $PIDFILE` | ||
# Return | ||
# 0 if daemon has been started | ||
# 1 if daemon was already running | ||
# 2 if daemon could not be started | ||
$DAEMON $DAEMON_ARGS --running && return 1 | ||
|
||
# Verify that the seleniumserver port is not already in use | ||
check_tcp_port "http" "$HTTP_PORT" "4444" || return 1 | ||
|
||
# --user in daemon doesn't prepare environment variables like HOME, USER, LOGNAME or USERNAME, | ||
# so we let su do so for us now | ||
$SU -l $SELENIUM_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- java -jar ${SELENIUM_JAR} ${SELENIUM_OPTIONS} > ${SELENIUM_LOG} 2> ${SELENIUM_ERROR_LOG}" || return 2 | ||
} | ||
|
||
# | ||
# Verify that all seleniumserver processes have been shutdown | ||
# and if not, then do killall for them | ||
# | ||
get_running() | ||
{ | ||
return `ps -U $SELENIUM_USER --no-headers -f | egrep -e '(java|daemon)' | grep -c . ` | ||
} | ||
|
||
force_stop() | ||
{ | ||
get_running | ||
if [ $? -ne 0 ]; then | ||
killall -u $SELENIUM_USER java daemon || return 3 | ||
fi | ||
} | ||
|
||
# Get the status of the daemon process | ||
get_daemon_status() | ||
{ | ||
$DAEMON $DAEMON_ARGS --running || return 1 | ||
} | ||
|
||
# | ||
# Function that stops the daemon/service | ||
# | ||
do_stop() | ||
{ | ||
# Return | ||
# 0 if daemon has been stopped | ||
# 1 if daemon was already stopped | ||
# 2 if daemon could not be stopped | ||
# other if a failure occurred | ||
get_daemon_status | ||
case "$?" in | ||
0) | ||
$DAEMON $DAEMON_ARGS --stop || return 2 | ||
# wait for the process to really terminate | ||
for n in 1 2 3 4 5; do | ||
sleep 1 | ||
$DAEMON $DAEMON_ARGS --running || break | ||
done | ||
if get_daemon_status; then | ||
force_stop || return 3 | ||
fi | ||
;; | ||
*) | ||
force_stop || return 3 | ||
;; | ||
esac | ||
|
||
# Many daemons don't delete their pidfiles when they exit. | ||
rm -f $PIDFILE | ||
return 0 | ||
} | ||
|
||
case "$1" in | ||
start) | ||
log_daemon_msg "Starting $DESC" "$NAME" | ||
do_start | ||
case "$?" in | ||
0|1) log_end_msg 0 ;; | ||
2) log_end_msg 1 ;; | ||
esac | ||
;; | ||
stop) | ||
log_daemon_msg "Stopping $DESC" "$NAME" | ||
do_stop | ||
case "$?" in | ||
0|1) log_end_msg 0 ;; | ||
2) log_end_msg 1 ;; | ||
esac | ||
;; | ||
restart|force-reload) | ||
# | ||
# If the "reload" option is implemented then remove the | ||
# 'force-reload' alias | ||
# | ||
log_daemon_msg "Restarting $DESC" "$NAME" | ||
do_stop | ||
case "$?" in | ||
0|1) | ||
do_start | ||
case "$?" in | ||
0) log_end_msg 0 ;; | ||
1) log_end_msg 1 ;; # Old process is still running | ||
*) log_end_msg 1 ;; # Failed to start | ||
esac | ||
;; | ||
*) | ||
# Failed to stop | ||
log_end_msg 1 | ||
;; | ||
esac | ||
;; | ||
status) | ||
get_daemon_status | ||
case "$?" in | ||
0) echo "$DESC is running with the pid `cat $PIDFILE`";; | ||
*) | ||
get_running | ||
procs=$? | ||
if [ $procs -eq 0 ]; then | ||
echo -n "$DESC is not running" | ||
if [ -f $PIDFILE ]; then | ||
echo ", but the pidfile ($PIDFILE) still exists" | ||
else | ||
echo | ||
fi | ||
else | ||
echo "$procs instances of seleniumserver are running at the moment" | ||
echo "but the pidfile $PIDFILE is missing" | ||
fi | ||
;; | ||
esac | ||
;; | ||
*) | ||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 | ||
exit 3 | ||
;; | ||
esac | ||
|
||
exit 0 |
File renamed without changes.