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

Last change on this file since c2bd1e9 was c2bd1e9, checked in by Irina Gómez <irinagomez@…>, 5 years ago

#988 Fix opengnsys startup script.

The port value for 'faucet' is fixed, it does not depend on the ogserver configuration. Required for multicast transfer.

  • Property mode set to 100755
File size: 4.9 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 Repositorio
23#
24############## ADV
25REPOAUXNAME=ogAdmRepoAux
26REPOAUXDAEMON=$BASEDIR/sbin/$REPOAUXNAME
27REPOAUXPORT=2009
28
29#
30# Opciones Bittorrent
31#
32
33BTTRACK=/usr/bin/bttrack.bittorrent
34BTSEEDER=/usr/bin/btlaunchmany.bittornado
35BTTRACKPORT=6969
36BTTRACKDFILE=/tmp/dstate
37BTTRACKLOG=$BASEDIR/log/bttrack.log
38BTINTERVAL=30
39BTTORRENTSDIR=$BASEDIR/images
40BTTRACK_OPTIONS=" --port $BTTRACKPORT --dfile $BTTRACKDFILE --reannounce_interval $BTINTERVAL --logfile $BTTRACKLOG --allowed_dir $BTTORRENTSDIR --allow_get 1"
41BTTRACKPID="/var/run/bttrack.pid"
42BTSEEDERPID="/var/run/btseeder.pid"
43
44
45export PATH="${PATH:+$PATH:}/usr/sbin:/sbin:/usr/bin"
46
47# Read config file if it is present.
48if [ -r /etc/default/opengnsys ]; then
49    source /etc/default/opengnsys
50fi
51
52# Configuración de arranque según la distribución Linux usada.
53config() {
54    if [ -f /etc/os-release ]; then
55        source /etc/os-release
56        OSDISTRIB="$ID"
57    else
58        OSDISTRIB=$(lsb_release -is 2>/dev/null)
59    fi
60    OSDISTRIB="${OSDISTRIB,,}"
61    case "$OSDISTRIB" in
62        ubuntu|debian|linuxmint)
63            INITFUNCTIONS=/lib/lsb/init-functions
64            EXTRAOPTS="--"
65            ACTIONMSG="log_daemon_msg"
66            SUCCESSMSG="log_end_msg 0"
67            FAILMSG="log_end_msg 1"
68            TRACKERSTART="start-stop-daemon --make-pidfile --pidfile $BTTRACKPID --start --quiet --background --exec"
69            BTTRACK_OPTIONS="$BTTRACK_OPTIONS --parse_allowed_interval 1"
70            TRACKERSTOP="start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $BTTRACKPID"
71            SEEDERSTART="start-stop-daemon --make-pidfile --pidfile $BTSEEDERPID --start --quiet --background --exec"
72            SEEDERSTOP="start-stop-daemon --stop --quiet --oknodo --pidfile $BTSEEDERPID"
73            ;;
74        centos|fedora)
75            INITFUNCTIONS=/etc/init.d/functions
76            ENDOPTS="&"
77            ACTIONMSG="echo -n"
78            SUCCESSMSG="eval ( success; echo )"
79            FAILMSG="eval ( failure; echo )"
80            BTTRACK=/usr/bin/bttrack.py
81            BTSEEDER=/usr/bin/btlaunchmany.py
82            TRACKERSTART="daemon --pidfile $BTTRACKPID"
83            TRACKERSTOP="killproc -p $BTTRACKPID $BTTRACK"
84            SEEDERSTART="daemon --pidfile $BTSEEDERPID"
85            SEEDERSTOP="killproc -p $BTSEEDERPID $BTSEEDER"
86            ;;
87        *)  echo "Distribución Linux desconcocida o no soportada."
88            exit ;;
89    esac
90    if [ -r $INITFUNCTIONS ]; then
91        source $INITFUNCTIONS
92    fi
93}
94
95arranca_demonios() {
96  # Comprobar que está instalado OpenGnsys.
97  if [ ! -d $BASEDIR ]; then
98     $ACTIONMSG "ERROR: No existe el directorio $BASEDIR"
99     $FAILMSG
100     exit $?
101  fi
102  # Deshabilitar modo reforzado de SELinux.
103  [ -f /selinux/enforce ] && echo 0 > /selinux/enforce
104  # Verificar permisos básicos.
105  if [ "$(stat --printf="%A%G" $IMAGEDIR 2>/dev/null)" != "drwxrwxr-x$OPENGNSYSUSER" ]; then
106     mkdir $IMAGEDIR 2>/dev/null
107     chmod 775 $IMAGEDIR
108     chgrp $OPENGNSYSUSER $IMAGEDIR
109  fi
110  if [ "$(stat --printf="%A%G" $CLIENTLOGDIR 2>/dev/null)" != "drwxrwxr-x$OPENGNSYSUSER" ]; then
111     mkdir -p $CLIENTLOGDIR 2>/dev/null
112     chmod 775 $CLIENTLOGDIR
113     chgrp $OPENGNSYSUSER $CLIENTLOGDIR
114  fi
115  # Arrancar los servicios indicados.
116  if [ $RUN_OGADMREPO = "yes" ]; then
117     $ACTIONMSG "Iniciando demonio: $REPOAUXNAME"
118     faucet $REPOAUXPORT --daemon --in bash -c "$REPOAUXDAEMON"
119     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
120  fi
121  if [ $RUN_BTTRACKER = "yes" ]; then
122     $ACTIONMSG "Iniciando demonio: $BTTRACK"
123     $TRACKERSTART $BTTRACK $EXTRAOPTS $BTTRACK_OPTIONS $ENDOPTS
124     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
125  fi
126  if [ $RUN_BTSEEDER = "yes" ]; then
127     $ACTIONMSG "Iniciando demonio: $BTSEEDER"
128     $SEEDERSTART $BTSEEDER $EXTRAOPTS $BTTORRENTSDIR &>/dev/null $ENDOPTS
129     [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
130  fi
131
132}
133
134para_demonios() {
135  if [ -e $BTSEEDERPID ]; then
136    $ACTIONMSG "Parando demonio: $BTSEEDER"
137    $SEEDERSTOP
138    if [ $? = 0 ]; then
139           $SUCCESSMSG
140           rm -f $BTSEEDERPID
141    else
142           $FAILMSG
143    fi
144  fi
145  if [ -e $BTTRACKPID ]; then
146    $ACTIONMSG "Parando demonio: $BTTRACK"
147    $TRACKERSTOP
148    if [ $? = 0 ]; then
149            $SUCCESSMSG
150            rm -f $BTTRACKPID
151    else
152            $FAILMSG
153    fi
154  fi
155  $ACTIONMSG "Parando demonio: $REPOAUXNAME"
156  pkill faucet
157  [ $? -le 1 ] && $SUCCESSMSG || $FAILMSG
158}
159
160config
161
162case "$1" in
163  start)
164        arranca_demonios
165        ;;
166  stop)
167        para_demonios
168        ;;
169  restart)
170        para_demonios
171        arranca_demonios
172        ;;
173
174  *)
175        echo "Uso: $0 {start|stop|restart}"
176        exit 1
177        ;;
178esac
179
180exit 0
181
Note: See TracBrowser for help on using the repository browser.