Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #
- # mongostart This starts mongodb
- #
- # chkconfig: 25 80 80
- # description: Arranca el demonio mongo, despues de ldap
- #
- #probablemente te preguntes sobre la linea chkconfig:
- #bueno lo que hace eso es definir el nivel de prioridad y en que runlevel del sistema
- #arrancara el programa
- #explicara esto
- #la configuracion esta dividad de acuerdo al tipo de numero que ponemos
- #cada configuracion se diferencia por la llegada de un espacio asi
- #25(espacio)80(espacio)80
- #que dice esto ?
- #lo que dice es que el proceso correra cuando el sistema este en los niveles de arranque (runlevels) 2 y 5
- #que prioridad de arranca sera 80 y el nivel de detener el demonio sera 80
- #los niveles de prioridad de arranque y detencion varian desde el 01 al 99
- #puedes mirar los niveles de arranque en tu sistema (que estan basados en el arranque system_v)
- #de la siguiente forma ls -l /etc/rc5.d/
- #esto mira los niveles de arranques de los demonios cuando el runlevel esta en el nivel 5
- #funciones comunes para todos los procesos que arrancar en un sistema tipo system_v
- . /etc/rc.d/init.d/functions
- #como para usar mongo, necesitamos acceder desde otro host a ella
- #usamos las siguientes lineas, para verificar si el servicio de red esta arriba
- #con esto traemos las variables que estan en el archivo network
- . /etc/sysconfig/network
- #verificamos si la variable NETWORK es igual a no
- #para eso utilizamos los operadores ternarios de bash
- [ ${NETWORKING} = "no" ] && exit 0
- #definimos algunas variables
- #por el nombre uno ya se da cuenta de lo que hace
- PID=/var/run/mongo.pid
- LOG=/var/log/mongo.log
- PORT=27017
- # MONGO_DIR=/usr/share/mongo/bin/
- MONGO_BIN="/usr/share/mongo/bin/mongod"
- #vamos a utilizar a mongostat para comprobar si el servidor ya esta corriendo en nuestro servidor
- MONGO_STAT="/usr/share/mongo/bin/mongostat"
- # cd $MONGO_DIR
- LOCKFILE=/var/lock/subsys/mongo
- # ./$MONGO_BIN --fork --pidfilepath $PID --logpath $LOG
- # ./$MONGO_BIN --pidfilepath $PID --logpath $LOG
- #armamos la funcion
- #para arrancar el demonio de mongo
- start () {
- echo $"Iniciando $MONGO_BIN: "
- $MONGO_STAT --port $PORT -n 1 >/dev/null 2>&1
- RETVAL=$?
- if [ $RETVAL = 0 ]; then
- #el demonio ya esta corriendo
- echo $"El demonio $MONGO_BIN ya esta corriendo: "
- return 0
- else
- touch $LOCKFILE
- #corremos mongo como demonio
- $MONGO_BIN --fork --pidfilepath $PID --logpath $LOG --port $PORT
- fi
- return 0
- }
- #funcion que parara el servicio mongo
- stop() {
- echo $"Parando $MONGO_BIN: "
- if [ ! -f "$PID" ]; then
- # not running; per LSB standards this is "ok"
- echo $"Mongo db no esta corriendo: "
- return 0
- fi
- #si esta corriendo lo matamos :)
- PIDM=`cat $PID`
- #validamos que la cadena obtenidad no sea nula
- if [ -n $PIDM ]; then
- #/dev/null 2>&1, lo que hace es redireccionar cualquier salida|salida_errror
- #/dev/null, es un archivo virtual, y su compartamiento es el de descartar
- #cualquier cosa vinculada a el
- #no quiero abordar mucho sobre el directorio /dev, pero en sencillas
- #palabras es un sistema de archivos virtual tipo devfs
- /bin/kill $PIDM >/dev/null 2>&1
- echo 'Deteniendo $MONGO_BIN: '
- RETVAL=$?
- if [ $RETVAL = 0 ]; then
- rm -rv $LOCKFILE
- rm -rv $PID
- return 0
- fi
- fi
- }
- restart() {
- #:), restart contiene la funcion stop y start o_O
- stop
- start
- }
- #luego armanos una estructura case, para verificar que parametro paso el usuario
- #por la linea de comandos
- case $1 in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- restart
- ;;
- status)
- #el comando status, es una funcion definida en /etc/rc.d/init.d/functions
- #y lo que hacemos en este caso es comprobar si el demonio esta corriendo por medio
- #de el numero de proceso asociado a el y el archivo binario que lo arranco
- #no es una de las mejores comprobaciones que podemos hacer, pero si entendemos el
- #proceso de creacion de un demonio, esto ya es suficiente para la mayoria
- status -p "$PID" $MONGO_BIN
- ;;
- *)
- echo $"Uso: $MONGO_BIN {start|stop|restart|status}"
- exit 2
- esac
- exit $RETVAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement