[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Solucionado] Script bash se cierra al intentar ejecutarse



Fíjate que en la primera entrada de menú (gxmessage-memfree) pides al
 terminal que ejecute un script, por lo que este permanece hasta que tú
 lo cierras. En el segundo sin embargo ejecutas sh que, a su vez,
 ejecuta el script bash memfree.sh. Cuando este termina se cierra. ¿Por
 qué no lo haces de manera similar al primero si quieres que el terminal
 permanezca abierto?
Saludos.
--
 Manolo Díaz

----------------------------------------------------------------------------------------------

Hola Manolo. Gracias por responder.

Efectivamente, tome tu sugerencia y modifique el script de
gxmessage-memfree. Otra modificación no directamente relacionada con
el tema, es que coloque los scripts en /usr/local/bin, donde deben ir,
según he leído en manuales de Debian.

El resultado es el siguiente:

1. Entrada del menú

menu "Mantenimiento" folder {
prog    "Memfree: Liberar memoria cache y swap"
"/usr/local/share/icons/hicolor/32x32/apps/memfree.xpm"
/bin/sh -c "/usr/local/bin/gxmessage-memfree"
}


2. Script gxmessage-memfree

 ############################################################################
 #!/bin/bash

gxmessage -center -geometry 280x200 -title "Memfree" -buttons
"Ok:1","Exit:2" -default "Exit" -font "Sans
bold 12" -wrap "Cuidado: Usar sólo si la cantidad de memoria SWAP
USADA es menor a la RAM USABLE.
Si lo es, presione Ok.
Si no lo es, presione Exit."

case $? in

1) xterm -e "sudo /usr/local/bin/memfree.sh";;
2) ;;

esac
 ############################################################################


3. Script memfree.sh

 ############################################################################
 #!/bin/bash

 echo “Limpiando la caché~ “;

 sync ; echo 2 > /proc/sys/vm/drop_caches

 echo “Limpiando Swap~ “;

 swapoff -a && swapon -a
 ############################################################################

Al hacer clic sobre la entrada del menú para "memfree", aparece el
mensaje que da la opción al usuario de provocar la liberación de
memoria cache y swap si la
cantidad de swap usada es menor a la cantidad de RAM libre.

Cuando terminé de hacer las modificaciones, se me ocurrió que seria
una mejora que el mismo sistema detectara si se cumple esa condición,
y entonces ejecutar el script memfree.
Pero apenas estoy leyendo haber como se lograría eso.

Pero con el asunto original, ya esta resuelto, así que doy esto por solucionado.

---------------------------------------------------------------------------------------------------------
> (...)
>
>> Bien, ahora el problema:
>>
>> Al hacer clic en la entrada del menú, aparece el mensaje en el
>> escritorio, pero al dar clic en el "botón Ok", aparece una ventana de
>> xterm y se cierra al segundo, sin que se ejecute el script memfree.
>
> (...)
>
> ¿Seguro que no se ejecuta el script?
>
> Lo normal es que se ejecute y se cierre la terminal que has iniciado.
> Podrías forzar a que se mantenga la terminal con "nohup" o si usas xterm,
> con el parámetro "-hold" pero entonces tendrás que cerrarla manualmente.
>
> Saludos,
>
> --
> Camaleón
>
---------------------------------------------------------------------------------------------------------------

Hola Camaleón.

Pienso que no se ejecutaba porque no veía cambio en la cantidad de
memoria cache, lo que si ocurría al ejecutarlo desde un emulador de
terminal.

En un inicio, esa era la idea de hallar un parámetro para mantener
abierta la terminal pero que luego se cerrara automáticamente. Sin
embargo, seguí la sugerencia de ofrecida antes y pude resolverlo.

Muchas gracias por acudir a la ayuda también.

Saludos

Frederit


Reply to: