• Hola Invitado, nos gustaría recordarte que mantener este sitio en línea conlleva unos gastos mensuales y anuales.

    Sin vuestra ayuda mensual no es posible seguir en pie, no hay mucho más que contar.

    Si quieres colaborar para que sea posible por lo menos seguir en pie como comunidad, puedes hacerlo mediante alguno de los métodos disponibles en esta página: https://www.lonasdigital.com/donaciones/

    Recuerda que si necesitas invitación para acceder al foro, puedes solicitarla en nuestro Grupo de Telegram


Os comento un tema sobre los script (blue panel LD 1.0)

Javilonas

Javilonas

Trovador Loco
Developer
Registrado
10 Sep 2006
Mensajes
25.306
Reacciones
2.689
Puntos
322
Pues para los que alternéis emuladoras, os recuerdo que antes de rular una nueva se ha de matar el proceso de la anterior, creí que el panel d econtrol lo haría pero parece ser que aún queda afinarlo un poco,

para ello la solución super sencilla pasa por añadir antes de el killall de la emuladora actual el de la otra o las otras que queramos poner a andar,

es decir os pongo un ejemplo:

Este script es para CCcam:

Código:
#!/bin/sh


CAMNAME="CCcam"


remove_tmp () {
    rm -rf /tmp/*.info /tmp/*.tmp
}




    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    start_cam () 
    { 
    sleep 2
    /usr/bin/CCcam &
    }
    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    stop_cam () 
    {
    killall -9 CCcam 2>/dev/null
        }
case "$1" in  
    start) 
        start_cam 
        ;; 
    stop) 
        stop_cam 
        ;; 
    restart) 
        $0 stop 
        $0 start 
        ;; 
    *)
 
    esac


exit 0

Pues bien, si lo usamos solo (que es como se supone que se ha de usar) pues matamos correctamente el proceso CCcam con el mismo script, pero el problema llega si luego cambiamos a otro script teniendo este actualmente ejecutándose...

Problema? ninguno, solo tenemos que añadirle un killall antes en el script nuevo y ya de camino a este le hacemos lo mismo, es decir, veamos un ejemplo de el otro script de mbox:

Código:
#!/bin/sh


CAMNAME="Mbox"


remove_tmp () {
    rm -rf /tmp/*.info* /tmp/*.tmp*
}




    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    start_cam () 
    { 
    sleep 9
    /usr/bin/mbox /usr/keys/mbox.cfg &
    }
    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    stop_cam () 
    {
    touch /tmp/mbox.kill
    sleep 10
    killall -9 mbox 2>/dev/null
        }
case "$1" in  
    start) 
        start_cam 
        ;; 
    stop) 
        stop_cam 
        ;; 
    restart) 
        $0 stop 
        $0 start 
        ;; 
    *)
 
    esac


exit 0

Los script están bien, y si se usan correctamente pues ningún problema, pero si se quiere cambiar de uno a otro se tendría que añadir en el caso de CCcam un killall -9 mbox 2>/dev/null justo debajo de el stop_cam es decir así:

Código:
#!/bin/sh


CAMNAME="CCcam"


remove_tmp () {
    rm -rf /tmp/*.info /tmp/*.tmp
}




    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    start_cam () 
    { 
    sleep 2
    /usr/bin/CCcam &
    }
    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    stop_cam () 
    {
    killall -9 mbox 2>/dev/null
    killall -9 CCcam 2>/dev/null
        }
case "$1" in  
    start) 
        start_cam 
        ;; 
    stop) 
        stop_cam 
        ;; 
    restart) 
        $0 stop 
        $0 start 
        ;; 
    *)
 
    esac


exit 0

y en el caso de Mbox se debería de hacer lo mismo pero al contrario, pongo ejemplo también:

Código:
#!/bin/sh


CAMNAME="Mbox"


remove_tmp () {
    rm -rf /tmp/*.info* /tmp/*.tmp*
}




    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    start_cam () 
    { 
    sleep 9
    /usr/bin/mbox /usr/keys/mbox.cfg &
    }
    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    stop_cam () 
    {
    killall -9 CCcam 2>/dev/null
    touch /tmp/mbox.kill
    sleep 10
    killall -9 mbox 2>/dev/null
        }
case "$1" in  
    start) 
        start_cam 
        ;; 
    stop) 
        stop_cam 
        ;; 
    restart) 
        $0 stop 
        $0 start 
        ;; 
    *)
 
    esac


exit 0

Y ya está, si fuese sbox o newcs pues ya sabéis que toca modificar eso por el nombre de la emu que toque o directamente añades tantos killall como emus que tengas,

yo buscaré solución para ello pero creo que es bueno indicarlo para que lo sepáis todo.

De esta manera antes de arrancar el siguiente script el anterior ya se encarga de matar el proceso existente.

Saludos
 

Temas similares

elladooscuro
Respuestas
10
Visitas
2K
elladooscuro
elladooscuro
D
Respuestas
1
Visitas
791
Arduramix
Arduramix
Atrás
Arriba