#!/bin/bash PYTHON="coverage run -p -a" URL=http://127.0.0.1/file # setup processes $PYTHON shadowsocks/local.py -c tests/graceful.json & LOCAL=$! $PYTHON shadowsocks/server.py -c tests/graceful.json --forbidden-ip "" & SERVER=$! python tests/graceful_server.py & GSERVER=$! sleep 1 python tests/graceful_cli.py & GCLI=$! sleep 1 # graceful restart server: send SIGQUIT to old process and start a new one kill -s SIGQUIT $SERVER $PYTHON shadowsocks/server.py -c tests/graceful.json --forbidden-ip "" & NEWSERVER=$! sleep 1 # check old server ps x | grep -v grep | grep $SERVER OLD_SERVER_RUNNING1=$? # old server should not quit at this moment echo old server running: $OLD_SERVER_RUNNING1 sleep 1 # close connections on old server kill -s SIGINT $GCLI kill -s SIGKILL $GSERVER kill -s SIGINT $LOCAL sleep 11 # check old server ps x | grep -v grep | grep $SERVER OLD_SERVER_RUNNING2=$? # old server should quit at this moment echo old server running: $OLD_SERVER_RUNNING2 # new server is expected running kill -s SIGINT $NEWSERVER || exit 1 if [ $OLD_SERVER_RUNNING1 -ne 0 ]; then exit 1 fi if [ $OLD_SERVER_RUNNING2 -ne 1 ]; then kill -s SIGINT $SERVER sleep 1 exit 1 fi