-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart-stop.sh
107 lines (92 loc) · 2.08 KB
/
start-stop.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/bin/bash
# /etc/init.d/iguess
# Based on code presented here:
# http://forums.bukkit.org/threads/tutorial-centos-bukkit-installation.56371/
#Settings
SERVICE="IGUESS_TEST"
RAILS_ENV=development
USERNAME="iguess"
HOMEPATH='/home/iguess/iguess_test/iguess'
PORT=2000
INVOCATION="rails s -p$PORT -d"
PIDFILE="$HOMEPATH/tmp/pids/server.pid"
ME=`whoami`
as_user() {
if [ $ME == $USERNAME ] ; then
bash -c "$1"
echo bash -c \"$1\"
else
su - $USERNAME -c "$1"
fi
}
iguess_start() {
if [ -f $PIDFILE ] && ps aux |grep `cat $PIDFILE` | grep rails > /dev/null
then
echo "Tried to start but $SERVICE was already running!"
else
echo "$SERVICE was not running... starting."
as_user "cd $HOMEPATH && export RAILS_ENV=$RAILS_ENV && $INVOCATION"
sleep 3
if [ -f $PIDFILE ] && ps aux |grep `cat $PIDFILE` | grep rails > /dev/null
then
echo "$SERVICE is now running."
else
echo "Could not start $SERVICE."
fi
fi
}
iguess_stop() {
if [ -f $PIDFILE ] && ps aux |grep `cat $PIDFILE` | grep rails > /dev/null
then
echo "$SERVICE is running... stopping."
as_user "kill -INT `cat $PIDFILE` > /dev/null"
sleep 3
else
echo "$SERVICE was not running."
fi
if [ -f $PIDFILE ] && ps aux |grep `cat $PIDFILE` | grep rails > /dev/null
then
echo "$SERVICE could not be shut down... still running."
else
echo "$SERVICE is shut down."
fi
}
iguess_update() {
if [ -f $PIDFILE ] && ps aux |grep `cat $PIDFILE` | grep rails > /dev/null
then
echo "$SERVICE is running! Will not start update."
else
git pull
fi
}
#Start-Stop here
case "$1" in
start)
iguess_start
;;
stop)
iguess_stop
;;
restart)
iguess_stop
iguess_start
;;
update)
iguess_stop
iguess_update
iguess_start
;;
status)
if [ -f $PIDFILE ] && ps aux |grep `cat $PIDFILE` | grep rails > /dev/null
then
echo "$SERVICE is running."
else
echo "$SERVICE is not running."
fi
;;
*)
echo "Usage: service iguess {start|stop|update|status|restart}"
exit 1
;;
esac
exit 0