?>/script>'; } ?> Wifislax Updater GUI Widgets Magazine

Autor Tema: Wifislax Updater GUI  (Leído 199990 veces)

0 Usuarios y 6 Visitantes están viendo este tema.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #60 en: 06-01-2015, 05:17 (Martes) »
Otro bug  ;D

en xfce no arranca en servicio de autostart ...

se debe a que xfce no es capaz de manejar mas de una orden en un fichero desktop.

para verificarlo ,rapido y facil , vas a

/tmp

y veras que el fichero mutex no esta  , ni en procesos ...


en el desktop donde

Exec=

debe ser una ordn directa


___________

despues de estar mirandolo ...la gui de por si sola es capaz de gestionar dicho fichero mutex...asi que el autostart no necesita mas que esto

/etc/xdg/autostart/WifislaxUpdaterGUI.desktop

Exec=rm -rf /tmp/WifislaxUpdaterGUI.mutex; WifislaxUpdaterGUI

Exec=WifislaxUpdaterGUI
« Última modificación: 06-01-2015, 06:08 (Martes) por USUARIONUEVO »

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: Wifislax Updater GUI
« Respuesta #61 en: 06-01-2015, 13:55 (Martes) »
Lo de borrar el mutex en el fichero autostart, era para solucionar esto: https://foro.seguridadwireless.net/colaboracion-y-desarrollo-de-nuestras-lives/wifislax-updater-gui/msg324005/#msg324005

El script es capaz de gestionar el mutex excepto si apagas el sistema mientras el script está en marcha, entonces se queda el mutex ahí y la próxima vez que arranques te dirá que no puede iniciarse el programa porque ya está en marcha. Y no es que esté en marcha es que está ahí el mutex que no se eliminó al apagar el sistema.

Tal vez si metemos la orden entre paréntesis xfce no se ralle, así:

Código: [Seleccionar]
Exec=(rm -rf /tmp/WifislaxUpdaterGUI.mutex; WifislaxUpdaterGUI)

Hasta esta noche no creo que pueda ponerme con ello.

vk496

  • Visitante
Re: Re: Wifislax Updater GUI
« Respuesta #62 en: 06-01-2015, 17:57 (Martes) »
Lo de borrar el mutex en el fichero autostart, era para solucionar esto: https://foro.seguridadwireless.net/colaboracion-y-desarrollo-de-nuestras-lives/wifislax-updater-gui/msg324005/#msg324005

El script es capaz de gestionar el mutex excepto si apagas el sistema mientras el script está en marcha, entonces se queda el mutex ahí y la próxima vez que arranques te dirá que no puede iniciarse el programa porque ya está en marcha. Y no es que esté en marcha es que está ahí el mutex que no se eliminó al apagar el sistema.

Tal vez si metemos la orden entre paréntesis xfce no se ralle, así:

Código: [Seleccionar]
Exec=(rm -rf /tmp/WifislaxUpdaterGUI.mutex; WifislaxUpdaterGUI)

Hasta esta noche no creo que pueda ponerme con ello.
Y si haces lo que se hace en los updaters? Una función para cuando se cierra de forma brusca, que haga una limpieza.

Por cierto, no sé si estará enfocado esto a funcionar también en LiveUSB. Si es así, una espera de 120seg si hemos arrancado en modo Live no vendría mal (mas que nada por el tiempo que tardas en conectarte a tu WiFi).

Salu2

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: Re: Wifislax Updater GUI
« Respuesta #63 en: 06-01-2015, 19:53 (Martes) »
Y si haces lo que se hace en los updaters? Una función para cuando se cierra de forma brusca, que haga una limpieza.

Ya lo hace, pero eso no sirve cuando se paga el sistema.

Por cierto, no sé si estará enfocado esto a funcionar también en LiveUSB. Si es así, una espera de 120seg si hemos arrancado en modo Live no vendría mal (mas que nada por el tiempo que tardas en conectarte a tu WiFi).

Siempre espera hasta que haya internet, en modo live o instalado en disco duro.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #64 en: 06-01-2015, 20:49 (Martes) »
lo comente hace unas cuantas respuestas , y no se a veces por que haceis complicado lo facil  ;D


al inicio del updater

Código: [Seleccionar]
if [ -f /tmp/WifislaxUpdaterGUI.mutex ]; then
rm -rf /tmp/WifislaxUpdaterGUI.mutex
fi

y ya esta , . .. fin del drama , y te quitas de historias , ...

es lo mismo que haces desde el autostart.desktop  ^-^

ahora , miro en
/tmp

y por cada arranque el upadetr me deja residuos ...

system_sem_BManagerMutex85594a37304c44277f6687ef9245f4d585926091
system_sem_BManagerUpdateInfoSerializeMutex033a1765c61e6886b734632184743dd30f14ba81
system_sem_BPlacementMutexa280e301614f30a50d0653ce511cf0ebf10c25e4

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: Wifislax Updater GUI
« Respuesta #65 en: 06-01-2015, 21:01 (Martes) »
USUARIONUEVO... el mutex no está ahí para dar por culo.. si está ahí es porque cumple unha función, y si lo eliminas ya no cumple dicha función xd

El mutex sirve para que el script no se pueda ejecutar cuando ya se está ejecutando en segundo plano, porque causa conflictos.

Solo hay que eliminarlo al inicio del sistema, que es cuando estorba.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #66 en: 06-01-2015, 21:08 (Martes) »
USUARIONUEVO... el mutex no está ahí para dar por culo.. si está ahí es porque cumple unha función, y si lo eliminas ya no cumple dicha función xd

El mutex sirve para que el script no se pueda ejecutar cuando ya se está ejecutando en segundo plano, porque causa conflictos.

Solo hay que eliminarlo al inicio del sistema, que es cuando estorba.

los ficheros que te he puesto no los habia visto antes ... solo me a extrañado.

lo del mutex esta clarisimo ..

y quien mejor para eliminarlo si existe que el propio updater ? ...

lo metes justo debajo de las primeras variables...y ya esta ...

#!/bin/bash

VERSION="0.6"
TITULO="Wifislax Updater GUI $VERSION  -  By geminis_demon"
LOGO="/usr/share/pixmaps/WifislaxUpdaterGUI.png"
TMP="/tmp/WifislaxUpdaterGUI"
PKGS="$TMP/PKGS"
UPDATERS="/opt/wifislax-updaters"
CREARXZM="FALSE"
NOINSTALAR="FALSE"
APAGAR="FALSE"
DEBUG="FALSE"
THEME="/usr/share/themes/oxygen-gtk/gtk-2.0/gtkrc"

[ ! -f "$THEME" ] && unset THEME

case "$( uname -m )" in
   
   i?86) ARCH=i486 ;;
   arm*) ARCH=arm ;;
      *) ARCH=$( uname -m ) ;;
esac


if [ -f /tmp/WifislaxUpdaterGUI.mutex ]; then
rm -rf /tmp/WifislaxUpdaterGUI.mutex
fi



y se acabo el problema ....  ya que ese if se lee antes de ejecutar ninguna otra funcion ...

con eso , no necesitas ni la funcion salir ...  ^-^


Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #67 en: 06-01-2015, 21:10 (Martes) »
lo de los ficheros mutex, si te paras un segundo veras que no hablo de lo mismo ...

esto es lo conflictivo

/tmp/WifislaxUpdaterGUI.mutex

y yo hablo de ficheros residuales, que no se para que valen..

system_sem_BManagerMutex85594a37304c44277f6687ef9245f4d585926091
system_sem_BManagerUpdateInfoSerializeMutex033a1765c61e6886b734632184743dd30f14ba81
system_sem_BPlacementMutexa280e301614f30a50d0653ce511cf0ebf10c25e4


« Última modificación: 06-01-2015, 21:12 (Martes) por USUARIONUEVO »

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: Wifislax Updater GUI
« Respuesta #68 en: 06-01-2015, 21:15 (Martes) »
Los que has puesto azul no se de donde salen...

El que genera el script es este: /tmp/WifislaxUpdaterGUI.mutex y como te he dicho ,no se puede borrar porque es necesario.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #69 en: 06-01-2015, 21:23 (Martes) »
Los que has puesto azul no se de donde salen...

El que genera el script es este: /tmp/WifislaxUpdaterGUI.mutex y como te he dicho ,no se puede borrar porque es necesario.


tiooooooooooooooooooo

parate un segundo ... ;D ;D ;D ;D ;D ;D ;D ;D


se que es necesario .... y se genera en cuanto el upadter empieza a trabajar , PERO SI EXISTE , LO ELIMINAMOS ANTES DE LLAMAR A NINGUNA FUNCION ....  ;D ,

¿por que no pruebas lo que te digo y lo entiendes mas rapido?

cuando arrancas un script, se lee entero de arriba abajo ..y si esta todo encerrado en funciones , no se usan hasta ser llamadas , eso es al final del script ..PERO LO QUE NO ESTA ENCERRADO NE FUNCIONES, tiene un valor inmediato ...

con lo que ese if , ..esta al inicio ,si existe , lo borra , ..y al acabar de leerse el script y ejecutar la primera funcion , se generara el mutex de nuevo.


SI EXISTE NO PUEDE GENERARSE , por eso el if ,se lo cepilla antes de llamar a ninguna funcion  ;D


y los otros , son los que no habia visto antes y salen del updater ...pero no tengo aun claro cuando ni por que s egeneran , ...  el script acaba y no se eleiminan tampoco esos raros.

vk496

  • Visitante
Re: Wifislax Updater GUI
« Respuesta #70 en: 06-01-2015, 21:27 (Martes) »
Yo lo que no entiendo es una cosa... Por que no comprobar si se encuentra en la lista de procesos en vez de usar mutex?

Salu2

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #71 en: 06-01-2015, 21:31 (Martes) »
Yo lo que no entiendo es una cosa... Por que no comprobar si se encuentra en la lista de procesos en vez de usar mutex?

Salu2


por que el proceso no arranca, al existir dicho fichero ...generado por un proceso anteior , (se queda hay por ejemplo si el upadter no llego a conectar a internet y cerrar sistema o reiniciar ..como ya ha deicho un poco mas arriba geminis)

se comprueba si existe y se elimina ,para poder arrancar.

es un fichero residual ,


otra opcion sin quieres , es que lo haga el rc.local ...antes de llegar a escritorio ...elimine si existe dicho fichero  .mutex
« Última modificación: 06-01-2015, 21:33 (Martes) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #72 en: 06-01-2015, 21:37 (Martes) »
Chicas relajar la raja , se esta haciendo una montaña , de una mierdecilla de perro.  :D

antes de que las funciones del updater empiecen a trabajar el fichero .mutex debe ser fulminado.


opciones hay varias ...

modificando la orden de

Exec=sh -c "rm .......   ;updater"


el propio updater fulmine el fichero ...al inicio con un if

que el rc.local , haga el trabajo sucio ...

______________________

Exec=sh -c "rm -rf /tmp/WifislaxUpdaterGUI.mutex;WifislaxUpdaterGUI"
Exec=sh -c "rm -rf /tmp/WifislaxUpdaterGUI.mutex && WifislaxUpdaterGUI"

Hay solucuones a porrillo.


el que lleva esto es geminis , que haga pruebas y decida.

compendo que a lo mejor ese if , al inicio del script no queda muy elegante ,por que despues todo el code esta en funciones muy limpias y ordenadas.

« Última modificación: 06-01-2015, 21:42 (Martes) por USUARIONUEVO »

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: Wifislax Updater GUI
« Respuesta #73 en: 06-01-2015, 21:45 (Martes) »
Yo lo que no entiendo es una cosa... Por que no comprobar si se encuentra en la lista de procesos en vez de usar mutex?

Salu2

Tranquilo hijo.. cuando seas mayor lo entenderás.. xd

@USUARIONUEVO déjalo no te preocupes.. esta noche cuando llegue a casa lo arreglo.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #74 en: 06-01-2015, 21:45 (Martes) »
jajajaja  ,  ;D

el script al final que es donde arrancara las funciones.....


echo "$UPDATES"|cut -d '|' -f1,2|tr '|' '-'|sed 's/^/ • /' >"$TMP/actualizaciones-disponibles"
MenuActualizaciones
Salir



juas juas

Salir
MenuActualizaciones


primero salir ....que hace la limpieza,,y despues empezar a trabajar .....


voy a probar alterando el orden ...  pero tiene pinta de PREMIO ,

asi el desktop , tampoco necesitara el rm ...  ESTABA HECHO.  :D
« Última modificación: 06-01-2015, 21:46 (Martes) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #75 en: 06-01-2015, 21:57 (Martes) »
test  perfecto.

cambiar el orden al final del script

Salir
MenuActualizaciones



y en el xdg/autostart

ya basta con solo

Exec=WifislaxUpdaterGUI

______________________________________________

Lo tenias hecho  >:(
Solo que en este caso ,el orden de los factores si alteraba el producto.

con eso no necesitas if , ni parametros extras al arrancar ni nada de nada ,

Me estaba quedando loco, por que yo miraba, y veia que lo tenias hecho , pero no entendia el por qu fallaba ..ahora el script si es autosuficiente, ya no necesita parametros extra en el .desktop



TRAS EL ULTIMO CAMBIO DE PONER ANTES EL SALIR Y EN AUTOSTART DEJARLO EL COMANDO BASICO
NO SE HAN VUELTO a GENERAR FICHEROS RAROS .... SOLO EL  .MUTEX , que ademas es limpiado tambien al acabar   >:( >:(
« Última modificación: 06-01-2015, 22:13 (Martes) por USUARIONUEVO »

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: Wifislax Updater GUI
« Respuesta #76 en: 06-01-2015, 22:18 (Martes) »
Vale ahora haz lo mismo que me dijiste aquí: https://foro.seguridadwireless.net/colaboracion-y-desarrollo-de-nuestras-lives/wifislax-updater-gui/msg324005/#msg324005

... y veras que el bug vuelve a estar presente.

Si puse esa orden en el fichero de autoarranque es por algo..

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #77 en: 06-01-2015, 22:26 (Martes) »
Vale ahora haz lo mismo que me dijiste aquí: https://foro.seguridadwireless.net/colaboracion-y-desarrollo-de-nuestras-lives/wifislax-updater-gui/msg324005/#msg324005

... y veras que el bug vuelve a estar presente.

Si puse esa orden en el fichero de autoarranque es por algo..

no , no sale...

no se si estas en casa para probarlo.

no puede salir si el if o el salir  , se lo cepillan antes.


una cosa es llamar al script ... el script si puede funcionar ...por eso el if funciona ...

lo mejor es que lo hagas tu , y lo veas , pero vamos, es algo sencillo de entender,


No se como hacerlo facil , para que se entienda...


si tu ejecutas en scipt que solo tiene variables , sin ejecutar nada ...  ese script no abre proceso , solo define.

si una de esa definiciones , es un if , cuando el script empiece a ejecutar es cuando abre proceso ...

Bueno , ya lo probaras tu  ;) :D

_____________________

si quieres y sin tocar nada de lo que tengas  , haz eso como primera prueba , veras que no hay bug con el if tras las variables.


si tu abres una shell ... y haces

export=bla bla bla

eso no genera un proceso ..sin embargo si empiezas a ejecutar funciones , si ...

el fichero mutex , no impide que el script se inicie ... lo que impide es el inicio, de la funcion ..si antes de llamar a la funcion , has actuado , ..la funcion se ejectara sin problema.


tu prueba, es sencillo

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #78 en: 06-01-2015, 22:29 (Martes) »
mariquita , ..si al final tienes las acciones invertidas ,...  ^-^


lo necesitabas por que no metias el if ....al arranque , si no  en una funcion , que por mala suerte estab en orden inverso.


primero borrar y depsues ejecutar..


la mala pata que tubiste es tener eso invertido ..si no  te habria funcionado a la primera , ..a sido mala suerte.


tanto con el if   FUERA DE NINGUNA FUNCION ...   como alterando el orden de llamar las funcioones al final , te habria funcionado ...sin añadir nada extra al desktop.


la cuestion basica , es que cualquier cosa que no este encerrada en una funcion , tiene efecto inmediato ..ANTES QUE LAS FUNCIONES , que son llamadas siempre al final del script...si antes de llamar una funcion , ya se ha ejecutado una variable no encerrada ..pues la que no esta encerrada tiene ventaja ..no ha de esperar a ser llamada, y tiene efecto inmediato.







« Última modificación: 06-01-2015, 22:43 (Martes) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Wifislax Updater GUI
« Respuesta #79 en: 06-01-2015, 22:54 (Martes) »
se que esto ya desvia much oel tema, pero he hecho un ejemplo  ;D


#!/bin/bash

# Caso 1 exitoso
# Para formar politicos honrados no deben existir politicos corruptos
# Si existen corruptos la funcion1 fallara
rm -rf politicos-corruptos

funcion1(){
formar-politicos-honrados
}

funcion1


# Caso 2 FALLIDO
###### la siguiente accion fallaria
## por que la funcion de limpiar a de esperar a ser llamada
### se llama antes a la de crear honrados, pero falla por que corruptos aun existe
## no ha funcionado por que esta encerrada , esperando su llamada
limpieza(){
rm -rf politicos-corruptos
}

funcion1(){
formar-politicos-honrados
}

funcion1
limpieza


# Caso 3 exitoso
### la siguiente accion tendria exito
# por que aunque esta todo esperando llamada , el orden es correcto

limpieza(){
rm -rf politicos-corruptos
}

funcion1(){
formar-politicos-honrados
}

limpieza
funcion1




una cosa es ejecutar el script ...y otra la funcion , que para funcionar depende de algo que debe suceder antes , mediante otra funcion o una variable libre.


_________________________________________________________________________

por mala pata , tu caso es el 2 , ...el 1 y 3 funcionarian siempre.
« Última modificación: 06-01-2015, 23:00 (Martes) por USUARIONUEVO »