source: admin/Sources/Services/opengnsys.init @ e589e1d

Last change on this file since e589e1d was 1602040, checked in by ramon <ramongomez@…>, 11 years ago

Versión 1.0.5, #616: Integrar código de la versión 1.0.5 en rama principal.

git-svn-id: https://opengnsys.es/svn/trunk@4309 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 7.1 KB
Line 
1#!/bin/bash
2
3### BEGIN INIT INFO
4# Provides:          opengnsys
5# Required-Start:
6# Required-Stop:
7# Default-Start:     2 3 4 5
8# Default-Stop:      1
9# Short-Description: Servicios del sistema OpenGnSys
10# Description:       Servicios del sistema OpenGnSys
11### END INIT INFO
12
13#
14# Definiciones globales
15#
16BASEDIR=/opt/opengnsys
17OPENGNSYSUSER="opengnsys"
18IMAGEDIR=$BASEDIR/images
19CLIENTLOGDIR=$BASEDIR/log/clients
20
21#
22# Servidor de OpenGnSys
23#
24SERVERNAME=ogAdmServer
25SERVERDAEMON=$BASEDIR/sbin/$SERVERNAME
26SERVERCFG=$BASEDIR/etc/$SERVERNAME.cfg
27SERVERLOG=$BASEDIR/log/$SERVERNAME.log
28SERVERDAEMON_OPTIONS="-f $SERVERCFG -l $SERVERLOG"
29
30#
31# Servidor de Repositorio
32#
33REPONAME=ogAdmRepo
34REPODAEMON=$BASEDIR/sbin/$REPONAME
35REPOCFG=$BASEDIR/etc/$REPONAME.cfg
36REPOLOG=$BASEDIR/log/$REPONAME.log
37REPODAEMON_OPTIONS="-f $REPOCFG -l $REPOLOG"
38############## ADV
39REPOAUXNAME=ogAdmRepoAux
40REPOAUXDAEMON=$BASEDIR/sbin/$REPOAUXNAME
41REPOAUXPORT=$(awk -F= '/PUERTO/ {print $2+1}' $SERVERCFG 2>/dev/null)
42############## ADV
43############# IRINA # para setBootMode desde el cliente
44SERVERAUXNAME=ogAdmServerAux
45SERVERAUXDAEMON=$BASEDIR/sbin/$SERVERAUXNAME
46SERVERAUXPORT=2011 
47############# IRINA
48
49#
50# Servidor de tareas programadas
51#
52AGENTNAME=ogAdmAgent
53AGENTDAEMON=$BASEDIR/sbin/$AGENTNAME
54AGENTCFG=$BASEDIR/etc/$AGENTNAME.cfg
55AGENTLOG=$BASEDIR/log/$AGENTNAME.log
56AGENTDAEMON_OPTIONS="-f $AGENTCFG -l $AGENTLOG"
57
58#
59# Opciones Bittorrent
60#
61
62BTTRACK=/usr/bin/bttrack.bittorrent
63BTSEEDER=/usr/bin/btlaunchmany.bittornado
64BTTRACKPORT=6969
65BTTRACKDFILE=/tmp/dstate
66BTTRACKLOG=$BASEDIR/log/bttrack.log
67BTINTERVAL=30
68BTTORRENTSDIR=$BASEDIR/images
69BTTRACK_OPTIONS=" --port $BTTRACKPORT --dfile $BTTRACKDFILE --reannounce_interval $BTINTERVAL --logfile $BTTRACKLOG --allowed_dir $BTTORRENTSDIR --allow_get 1"
70BTTRACKPID="/var/run/bttrack.pid"
71BTSEEDERPID="/var/run/btseeder.pid"
72
73
74export PATH="${PATH:+$PATH:}/usr/sbin:/sbin:/usr/bin"
75
76# Read config file if it is present.
77if [ -r /etc/default/opengnsys ]; then
78    source /etc/default/opengnsys
79fi
80
81# Configuración de arranque según la distribución Linux usada.
82config() {
83    if [ -f /etc/os-release ]; then
84        source /etc/os-release
85        OSDISTRIB="$NAME"
86    else
87        OSDISTRIB=$(lsb_release -is 2>/dev/null)
88    fi
89    case "$OSDISTRIB" in
90        Ubuntu|Debian|LinuxMint)
91            INITFUNCTIONS=/lib/lsb/init-functions
92            DAEMONSTART="start-stop-daemon --start --quiet --background --exec"
93            EXTRAOPTS="--"
94            DAEMONSTOP="start-stop-daemon --stop --quiet --oknodo --name"
95            ACTIONMSG="log_daemon_msg"
96            SUCCESSMSG="log_end_msg 0"
97            FAILMSG="log_end_msg 1"
98            TRACKERSTART="start-stop-daemon --make-pidfile --pidfile $BTTRACKPID --start --quiet --background --exec"
99            BTTRACK_OPTIONS="$BTTRACK_OPTIONS --parse_allowed_interval 1"
100            TRACKERSTOP="start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $BTTRACKPID"
101            SEEDERSTART="start-stop-daemon --make-pidfile --pidfile $BTSEEDERPID --start --quiet --background --exec"
102            SEEDERSTOP="start-stop-daemon --stop --quiet --oknodo --pidfile $BTSEEDERPID"
103            ;;
104        CentOS|Fedora)
105            INITFUNCTIONS=/etc/init.d/functions
106            DAEMONSTART="daemon"
107            ENDOPTS="&"
108            DAEMONSTOP="killproc"
109            ACTIONMSG="echo -n"
110            SUCCESSMSG="eval ( success; echo )"
111            FAILMSG="eval ( failure; echo )"
112            BTTRACK=/usr/bin/bttrack.py
113            BTSEEDER=/usr/bin/btlaunchmany.py
114            TRACKERSTART="daemon --pidfile $BTTRACKPID"
115            TRACKERSTOP="killproc -p $BTTRACKPID $BTTRACK"
116            SEEDERSTART="daemon --pidfile $BTSEEDERPID"
117            SEEDERSTOP="killproc -p $BTSEEDERPID $BTSEEDER"
118            ;;
119        *)  echo "Distribución Linux desconcocida o no soportada."
120            exit ;;
121    esac
122    if [ -r $INITFUNCTIONS ]; then
123        source $INITFUNCTIONS
124    fi
125}
126
127arranca_demonios() {
128  # Comprobar que está instalado OpenGnSys.
129  if [ ! -d $BASEDIR ]; then
130     $ACTIONMSG "ERROR: No existe el directorio $BASEDIR"
131     $FAILMSG
132     exit $?
133  fi
134  # Deshabilitar modo reforzado de SELinux.
135  [ -f /selinux/enforce ] && echo 0 > /selinux/enforce
136  # Verificar permisos básicos.
137  if [ "$(stat --printf="%A%G" $IMAGEDIR 2>/dev/null)" != "drwxrwxr-x$OPENGNSYSUSER" ]; then
138     mkdir $IMAGEDIR 2>/dev/null
139     chmod 775 $IMAGEDIR
140     chgrp $OPENGNSYSUSER $IMAGEDIR
141  fi
142  if [ "$(stat --printf="%A%G" $CLIENTLOGDIR 2>/dev/null)" != "drwxrwxr-x$OPENGNSYSUSER" ]; then
143     mkdir -p $CLIENTLOGDIR 2>/dev/null
144     chmod 775 $CLIENTLOGDIR
145     chgrp $OPENGNSYSUSER $CLIENTLOGDIR
146  fi
147  # Arrancar los servicios indicados.
148  if [ $RUN_OGADMSERVER = "yes" ]; then
149     $ACTIONMSG "Iniciando demonio: $SERVERNAME"
150     $DAEMONSTART $SERVERDAEMON $EXTRAOPTS $SERVERDAEMON_OPTIONS $ENDOPTS
151     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
152     # Para SetBootmode desde el cliente
153     $ACTIONMSG "Iniciando demonio: $SERVERAUXNAME"                    #
154     faucet $SERVERAUXPORT --daemon --in bash -c "$SERVERAUXDAEMON"    #   NUEVO
155     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
156  fi
157  if [ $RUN_OGADMSERVER = "yes" ] && [ $RUN_OGADMREPO = "yes" ]; then
158     sleep 5 # Damos tiempo a que ogAdmServer este funcionando
159  fi
160  if [ $RUN_OGADMREPO = "yes" ]; then
161     $ACTIONMSG "Iniciando demonio: $REPONAME"
162     $DAEMONSTART $REPODAEMON $EXTRAOPTS $REPODAEMON_OPTIONS $ENDOPTS
163     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
164     $ACTIONMSG "Iniciando demonio: $REPOAUXNAME"
165     faucet $REPOAUXPORT --daemon --in bash -c "$REPOAUXDAEMON"
166     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
167  fi
168  if [ $RUN_OGADMAGENT = "yes" ]; then
169     $ACTIONMSG "Iniciando demonio: $AGENTNAME"
170     $DAEMONSTART $AGENTDAEMON $EXTRAOPTS $AGENTDAEMON_OPTIONS $ENDOPTS
171     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
172  fi   
173  if [ $RUN_BTTRACKER = "yes" ]; then
174     $ACTIONMSG "Iniciando demonio: $BTTRACK"
175     $TRACKERSTART $BTTRACK $EXTRAOPTS $BTTRACK_OPTIONS $ENDOPTS
176     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
177  fi
178  if [ $RUN_BTSEEDER = "yes" ]; then
179     $ACTIONMSG "Iniciando demonio: $BTSEEDER"
180     $SEEDERSTART $BTSEEDER $EXTRAOPTS $BTTORRENTSDIR &>/dev/null $ENDOPTS
181     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
182  fi
183
184}
185
186para_demonios() {
187  if [ -e $BTSEEDERPID ]; then
188    $ACTIONMSG "Parando demonio: $BTSEEDER"
189    $SEEDERSTOP
190    [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
191    rm -f $BTSEEDERPID
192  fi
193  if [ -e $BTTRACKPID ]; then
194    $ACTIONMSG "Parando demonio: $BTTRACK"
195    $TRACKERSTOP
196    [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
197    rm -f $BTTRACKPID
198  fi
199  $ACTIONMSG "Parando demonio: $AGENTNAME"
200  $DAEMONSTOP $AGENTNAME
201  [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
202  $ACTIONMSG "Parando demonio: $REPONAME"
203  $DAEMONSTOP $REPONAME
204  [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
205  $ACTIONMSG "Parando demonio: $REPOAUXNAME"
206  pkill faucet
207  [ $? -le 1 ] && $SUCCESSMSG || $FAILMSG
208  $ACTIONMSG "Parando demonio: $SERVERNAME"
209  $DAEMONSTOP $SERVERNAME
210  [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
211}
212
213config
214
215case "$1" in
216  start)
217        arranca_demonios
218        ;;
219  stop)
220        para_demonios
221        ;;
222  restart)
223        para_demonios
224        arranca_demonios
225        ;;
226
227  *)
228        echo "Uso: $0 {start|stop|restart}"
229        exit 1
230        ;;
231esac
232
233exit 0
234
Note: See TracBrowser for help on using the repository browser.