Skip to content

Instantly share code, notes, and snippets.

@zEvg
Created February 22, 2011 12:21
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save zEvg/838591 to your computer and use it in GitHub Desktop.
Save zEvg/838591 to your computer and use it in GitHub Desktop.
inid.d script for CentOS
#!/bin/bash
# /etc/init.d/selenium-grid
# centos-compatible selenium-grid startup script.
# Eugene Zakharchenko <z.evgeniy[at]gmail.com>
### BEGIN INIT INFO
# Provides: selenium-grid
# 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 selenium at boot time
# Description: Controls selenium grid.
### END INIT INFO
# Source function library.
. /etc/init.d/functions
# Place for pid file
SELENIUM_PID=/var/run/selenium-grid.pid
# Create selenium user before or change it
SELENIUM_USER=selenium
# Log dile
SELENIUM_LOG_FILE=/var/log/selenium/selenium.log
# Java interpreter
JAVA_CMD=/usr/bin/java
# Version of Selenium grid you're using
SELENIUM_GRID_VERSION=1.0.8
# Selenium Grid home directory
SELENIUM_GRID_HOME=/usr/local/selenium-grid
# Class path for SG
SELENIUM_GRID_HOME_CLASSPATH="$SELENIUM_GRID_HOME:$SELENIUM_GRID_HOME/lib/selenium-grid-hub-standalone-$SELENIUM_GRID_VERSION.jar"
# Options for running SG
PARAMS="-classpath $SELENIUM_GRID_HOME_CLASSPATH com.thoughtworks.selenium.grid.hub.HubServer"
case "$1" in
start)
echo -n "Starting Selenium Grid ..."
# ensure that we have a dir for the logs
if [ ! -f $SELENIUM_LOG_FILE ]; then
mkdir $(dirname $SELENIUM_LOG_FILE) > /dev/null 2>$1
chown $SELENIUM_USER:$SELENIUM_USER $(dirname $SELENIUM_LOG_FILE) > /dev/null 2>$1
fi
# retrieving pid of the paretn process
/bin/su -l "$SELENIUM_USER" --shel=/bin/bash -c "$JAVA_CMD $PARAMS 2> $SELENIUM_LOG_FILE &"
echo $(ps hww -u "$SELENIUM_USER" -o pid,cmd | grep -v bash | cut -d ' ' -f 1) > "$SELENIUM_PID"
if [ $? == "0" ]; then
success
else
failure
fi
echo
echo "Log file: $SELENIUM_LOG_FILE"
;;
status)
status -p "$SELENIUM_PID" selenium
;;
stop)
echo -n "Killing Selenium Grid ..."
killproc -p "$SELENIUM_PID" selenium
echo
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
@greenius
Copy link

I am trying something similar with solr which also runs with java, but have found that the cut command does not work when the pid is 4 digits as it added a space to the front. A solution is to add :1 to the ps command so that it does not pad with leading spaces, eg.

echo $(ps hww -u docmoto -o pid:1,cmd | grep solr | cut -d ' ' -f 1) > "$SELENIUM_PID"

@zEvg
Copy link
Author

zEvg commented May 19, 2011

Current version works for me.
Any way thanks for hint :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment