|
| 1 | +#!/usr/bin/env bash |
| 2 | + |
| 3 | +# |
| 4 | +# Usage: grid-node {start|stop} |
| 5 | +# |
| 6 | + |
| 7 | +source $(dirname $0)/util |
| 8 | + |
| 9 | +EXPECTED_ARGS=1 |
| 10 | +E_BADARGS=65 |
| 11 | + |
| 12 | +DO_showUsage() { |
| 13 | + echo "Usage: $(basename $0) {start|stop}" |
| 14 | + exit $E_BADARGS |
| 15 | +} |
| 16 | + |
| 17 | +if [ $# -ne $EXPECTED_ARGS ]; then |
| 18 | + DO_showUsage |
| 19 | +fi |
| 20 | + |
| 21 | +################################################################################ |
| 22 | + |
| 23 | +WEBDRIVER_SERVER_JAR=./selenium-server-standalone.jar |
| 24 | +WEBDRIVER_NODE_PARAMS="-role webdriver -hubHost 127.0.0.1 -hubPort 4444 -host 127.0.0.1 -browserName=firefox" |
| 25 | +WEBDRIVER_NODE_PIDFILE="/tmp/webdriver_node.pid" |
| 26 | + |
| 27 | +if [ ! -f $WEBDRIVER_SERVER_JAR ]; then |
| 28 | + echo "You must place the Selenium-WebDriver standalone JAR file at ${WEBDRIVER_SERVER_JAR} before proceeding." |
| 29 | + exit 1 |
| 30 | +fi |
| 31 | + |
| 32 | +case "$1" in |
| 33 | + start) |
| 34 | + echo "Starting Selenium-WebDriver Grid2 node..." |
| 35 | + if [ -f $WEBDRIVER_NODE_PIDFILE ]; then |
| 36 | + echo "${FAIL_MSG} Selenium-WebDriver Grid2 node already running with PID $(cat $WEBDRIVER_NODE_PIDFILE). Run 'grid-node stop' or 'grid-node restart'." |
| 37 | + exit 1 |
| 38 | + else |
| 39 | + START_NODE_CMD="java -Djava.util.logging.config.file=test/logging.properties -jar ${WEBDRIVER_SERVER_JAR} ${WEBDRIVER_NODE_PARAMS}" |
| 40 | + $START_NODE_CMD & |
| 41 | + PID=$! |
| 42 | + echo $PID > "${WEBDRIVER_NODE_PIDFILE}" |
| 43 | + echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 node started successfully." |
| 44 | + echo "To see full log output, remove the java.util.logging.config.file parameter from script/grid-node" |
| 45 | + fi |
| 46 | + ;; |
| 47 | + stop) |
| 48 | + echo "Stopping Selenium-WebDriver Grid2 node..." |
| 49 | + if [ -f $WEBDRIVER_NODE_PIDFILE ]; then |
| 50 | + PID=$(cat $WEBDRIVER_NODE_PIDFILE) |
| 51 | + kill $PID |
| 52 | + rm $WEBDRIVER_NODE_PIDFILE |
| 53 | + sleep 1 |
| 54 | + if [[ $(ps -A | egrep "^${PID}") ]]; then |
| 55 | + echo "${FAIL_MSG} Tried to kill the node with PID ${PID}, but was unsuccessful. You need to kill it with something stronger, like 'kill -9'" |
| 56 | + exit 1 |
| 57 | + else |
| 58 | + echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 node stopped successfully." |
| 59 | + exit 0 |
| 60 | + fi |
| 61 | + else |
| 62 | + echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 node has already been stopped." |
| 63 | + exit 0 |
| 64 | + fi |
| 65 | + ;; |
| 66 | + restart) |
| 67 | + $0 stop |
| 68 | + $0 start |
| 69 | + ;; |
| 70 | + *) |
| 71 | + DO_showUsage |
| 72 | +esac |
0 commit comments