• Domingo 22 de Diciembre de 2024, 03:51

Autor Tema:  [BASH] Emulación de demonio sin update-rc.d  (Leído 2144 veces)

ryuz

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ar
  • :)
    • Ver Perfil
[BASH] Emulación de demonio sin update-rc.d
« en: Martes 14 de Mayo de 2013, 17:39 »
0
Bueno hoy tenia la necesidad en el trabajo de realizar un código que proporcionara a una aplicación en Python los parametros de poder iniciar, parar y reiniciar el proceso.

La variable "cmd" contiene el el comando a ejecutar en modo "oculto", el código crea dos ficheros uno por nohup (el cual aun no se como evitar que se cree  :whistling:) y un fichero que creo para obtener el identificador del proceso que se crea para poder matarlo en cualquier momento mediante el parametro "stop".

Creo que es simple y puede ser util.

Código: [Seleccionar]
#!/bin/bash
i=`basename $0`
cmd="ping www.google.com"
function start() {
FILE="PID.binit"
case "${1}" in
"start")
if [ -f "${FILE}" ]; then
echo -e "\n[!] Process is running..."
else
echo -e "\n[+] Starting nohup ..."
nohup $cmd &
PID=$!
echo -e "\n[+] Starting Process..."
echo "kill -9 ${PID}" > "${FILE}"
fi
;;
"stop")
if [ -f "${FILE}" ]; then
echo -e "\n[!] Stopping Process..."
(`cat "${FILE}"`)
rm "${FILE}"
rm nohup.out
else
echo -e "\n[!] Process not running..."
fi
;;
"restart")
if [ -f "${FILE}" ]; then
echo -e "\n[+] Restarting Process..."
./${i} stop
./${i} start
else
echo -e "\n[!] Process not running..."
fi
;;
*)
usage
;;
esac
}
function usage() {
echo -e "\n${0} [start|stop|restart]\n"
}
if [ $# -eq 1 ]; then
start "${1}"
else
usage
fi

 :smartass:

Lo del comando "ping"  es simplemente de ejemplo, yo tenia una linea extensa debido al programa en Python y sus argumentos de ficheros de configuracion, logs, etcétera.

Hay veces que los programas no se inician como deben mediante update-rc.d, de ahí que me viera obligadoa  hacer este script.

 :kicking: