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
) 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.
#!/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
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.