default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / init.d / freeside-init
1 #!/bin/sh
2 #
3 # chkconfig: 345 86 16
4 # description: Freeside daemons
5 #
6 ### BEGIN INIT INFO
7 # Provides:          freeside
8 # Required-Start:    $time $remote_fs
9 # Required-Stop:     $remote_fs
10 # Should-Start:      postgresql mysql
11 # Should-Stop:       postgresql mysql
12 # Default-Start:     2 3 4 5
13 # Default-Stop:      0 1 6
14 # Short-Description: Start Freeside daemons at boot time
15 # Description:       Enable Freeside daemons
16 ### END INIT INFO
17
18 QUEUED_USER=%%%QUEUED_USER%%%
19 API_USER=%%%API_USER%%%
20
21 SELFSERVICE_USER=%%%SELFSERVICE_USER%%%
22 SELFSERVICE_MACHINES="%%%SELFSERVICE_MACHINES%%%"
23
24 IF=eth0
25
26 #INSTALLSCRIPT/INSTALLSITEBIN from Makefile.PL
27 PATH="$PATH:/usr/local/bin"
28 export PATH
29
30 [ -r /etc/default/freeside ] && . /etc/default/freeside
31
32 case "$1" in
33   start)
34         # Start daemons.
35
36         for MACHINE in $SELFSERVICE_MACHINES; do
37           echo -n "Starting freeside-selfservice-server to $MACHINE: "
38           freeside-selfservice-server $SELFSERVICE_USER $MACHINE
39           echo "done."
40         done
41
42         echo -n "Starting freeside-selfservice-xmlrpcd: "
43         freeside-selfservice-xmlrpcd $SELFSERVICE_USER
44         echo "done."
45
46         echo -n "Starting freeside-xmlrpcd: "
47         freeside-xmlrpcd $API_USER
48         echo "done."
49
50 #        echo -n "Starting freeside-jsonrpcd: "
51 #        freeside-jsonrpcd $API_USER
52 #        echo "done."
53
54         echo -n "Starting freeside-queued: "
55         #perl -MDBIx::Profile /usr/local/bin/freeside-queued $QUEUED_USER
56         freeside-queued $QUEUED_USER
57         #export NYTPROF="file=/usr/local/etc/freeside/nytprof.out"
58         #PERL5OPT="-d:NYTProf" freeside-queued $QUEUED_USER
59         echo "done."
60
61         echo -n "Starting freeside-sqlradius-radacctd: "
62         freeside-sqlradius-radacctd $QUEUED_USER
63         echo "done."
64
65         echo -n "Starting freeside-prepaidd: "
66         freeside-prepaidd $QUEUED_USER
67         echo "done."
68
69         echo -n "Starting freeside-cdrrewrited: "
70         freeside-cdrrewrited $QUEUED_USER
71         echo "done."
72
73         echo -n "Starting freeside-cdrd: "
74         freeside-cdrd $QUEUED_USER
75         echo "done."
76
77         echo -n "Starting freeside-cdrrated: "
78         freeside-cdrrated $QUEUED_USER
79         echo "done."
80
81         echo -n "Starting freeside-pingd: "
82         freeside-pingd $QUEUED_USER
83         echo "done."
84
85         if [ -e /usr/local/bin/torrus ]; then
86           echo -n "Starting torrus collector: "
87           /usr/local/bin/torrus collector --tree=main
88           echo "done."
89         fi
90
91         echo -n "Starting freeside-torrus-srvderive: "
92         freeside-torrus-srvderive $QUEUED_USER
93         echo "done."
94
95         if [ -e /opt/rt3/etc/RT_SiteConfig.pm.ORIG_WEBDEMO_HACK ]; then
96           ip=`/sbin/ifconfig $IF | grep 'inet addr:' | cut -d: -f2- | cut -d' ' -f1`
97           cp /opt/rt3/etc/RT_SiteConfig.pm.ORIG_WEBDEMO_HACK /opt/rt3/etc/RT_SiteConfig.pm
98           perl -pi -e "s/localhost/$ip/" /opt/rt3/etc/RT_SiteConfig.pm
99         fi
100
101         ;;
102   stop)
103         # Stop daemons.
104         echo -n "Stopping freeside-queued: "
105         [ -e /var/run/freeside-queued.pid ] && kill `cat /var/run/freeside-queued.pid`
106         #and
107         sleep 2;
108         killall freeside-queued
109         echo "done."
110
111         if [ -e /var/run/freeside-sqlradius-radacctd.pid ]; then
112           echo -n "Stopping freeside-sqlradius-radacctd: "
113           kill `cat /var/run/freeside-sqlradius-radacctd.pid`
114           echo "done."
115         fi
116
117         if [ -e /var/run/freeside-prepaidd.pid ]; then
118           echo -n "Stopping freeside-prepaidd: "
119           kill `cat /var/run/freeside-prepaidd.pid`
120           echo "done."
121         fi
122
123         if [ -e /var/run/freeside-cdrd.pid ]; then
124           echo -n "Stopping freeside-cdrd: "
125           kill `cat /var/run/freeside-cdrd.pid`
126           echo "done."
127         fi
128
129         if [ -e /var/run/freeside-cdrrewrited.pid ]; then
130           echo -n "Stopping freeside-cdrrewrited: "
131           kill `cat /var/run/freeside-cdrrewrited.pid`
132           echo "done."
133         fi
134
135         if [ -e /var/run/freeside-cdrrated.pid ]; then
136           echo -n "Stopping freeside-cdrrated: "
137           kill `cat /var/run/freeside-cdrrated.pid`
138           echo "done."
139         fi
140
141         if [ -e /var/run/freeside-pingd.pid ]; then
142           echo -n "Stopping freeside-pingd: "
143           kill `cat /var/run/freeside-pingd.pid`
144           echo "done."
145         fi
146
147         if [ -e /var/run/freeside/torrus-srvderive.pid ]; then
148           echo -n "Stopping freeside-torrus-srvderive: "
149           kill `cat /var/run/freeside/torrus-srvderive.pid`
150           echo "done."
151         fi
152
153         if [ -e /var/run/torrus/collector.main_?.pid ]; then
154           echo -n "Stopping torrus collector: "
155           kill `cat /var/run/torrus/collector.main_?.pid`
156           echo "done."
157         fi
158
159         if [ -e /var/run/freeside/xmlrpcd.pid ]; then
160           echo -n "Stopping freeside-xmlrpcd: "
161           kill `cat /var/run/freeside/xmlrpcd.pid`
162           echo "done."
163         fi
164
165 #        if [ -e /var/run/freeside/jsonrpcd.pid ]; then
166 #          echo -n "Stopping freeside-jsonrpcd: "
167 #          kill `cat /var/run/freeside/jsonrpcd.pid`
168 #          echo "done."
169 #        fi
170
171         if [ -e /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid ]
172         then
173           echo -n "Stopping (old) freeside-selfservice-server: "
174           kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid`
175           sleep 
176           rm /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid
177           echo "done."
178         fi
179
180         if [ -z "$SELFSERVICE_MACHINES" ]; then SELFSERVICE_MACHINES='localhost'; fi
181         for MACHINE in $SELFSERVICE_MACHINES; do
182           if [ -e /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid ]
183           then
184             echo -n "Stopping freeside-selfservice-server to $MACHINE"
185             kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid`
186             howlong=10
187             while [ $howlong -gt 0 ] && kill -0 `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid` 2>/dev/null; do
188               echo -n '.'
189               sleep 1
190               howlong=$(( $howlong - 1 ))
191               if [ $howlong -eq 0 ]; then
192                 echo -n 'forcefully.'
193                 kill -9 `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid`
194               fi
195             done
196             echo "done."
197             rm /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid
198           fi
199         done
200
201         if [ -e /var/run/freeside/selfservice-xmlrpcd.pid ]; then
202           echo -n "Stopping freeside-selfservice-xmlrpcd: "
203           kill `cat /var/run/freeside/selfservice-xmlrpcd.pid`
204           echo "done."
205         fi
206
207         ;;
208
209   restart)
210         $0 stop
211         $0 start
212         ;;
213   *)
214         echo "Usage: freeside {start|stop|restart}"
215         exit 1
216 esac
217
218 exit 0
219