elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Bash] Matar proceso según la memoria libre
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Bash] Matar proceso según la memoria libre  (Leído 2,030 veces)
yMk369

Desconectado Desconectado

Mensajes: 31


人は何かを成す為に生を受け、成し終えた時、死んで行く


Ver Perfil
[Bash] Matar proceso según la memoria libre
« en: 15 Agosto 2015, 02:42 am »

Buen día a todos,

Estoy haciendo un script para matar un proceso dependiendo de la memoria libre el código es el siguiente:

Código:

#!/bin/bash

var1= free -m |awk 'NR == 2'| awk '{print $3}'
var2= ps aux | grep '/opt/skype/skype' | grep -v grep | awk '{print $2}'

while true;
do
     if [ $var1 > 5000 ]; then
         echo "La memoria se ha excedido cerrando porcesos"
         kill -9 $var2
     break
     else
     echo "La memoria aun es estable $var1"
     fi
done

pero... ¿por que no mejor en lugar de declarar la variable para luego matar  kill -9 $var2, mejor ejecutar el comando ps aux | grep '/opt/skype/skype' | grep -v grep | awk '{print $2}' | xargs kill que mataría el proceso directamente?

si ese fuera el caso mejor usaría pkill skype que mataría dicho proceso, pero lo que yo quiero saber o supongo que es el problema es algo así como el manejo de números enteros, por que al hacer una condición ejemplo: $var1 > 5000 no hay resultado, supongo que estoy comparando diferentes tipos de valores, ¿que puedo hacer? ¿como puedo pasar entonces estos valores a valores enteros?

Hacer notar que me estoy iniciando en Bash

De antemano agradezco su ayuda, saludos.


En línea

yMk369

Desconectado Desconectado

Mensajes: 31


人は何かを成す為に生を受け、成し終えた時、死んで行く


Ver Perfil
Re: [Bash] Matar proceso según la memoria libre
« Respuesta #1 en: 23 Agosto 2015, 00:06 am »

Hola, pues ya tengo el código corriendo al 100, tomar en cuenta que es un while true por lo tanto corre infinitamente, que es lo que necesito por que en firefox tengo corriendo Kibana, y esta revisando bastantes logs por lo tanto consume mucha memoria, por supuesto tambien libero la memoria cache en /proc/sys/vm/drop_caches  pero no es suficiente, les dejo el codigo para que lo analicen.

Código:
#!/bin/bash

while true;
do

var1=$( free -m |awk 'NR==2 {print $3}' )
varl=$( free -m |awk 'NR == 2'| awk '{print $4}' )
var2=$( ps aux | grep '/usr/lib/firefox/firefox' | grep -v grep | awk '{print $2}' )

    if [ $var1 -gt 3000 ]; then
        echo "La memoria se ha excedido cerrando Firefox"
        kill -9 $var2
        echo "Comprobando si Firefox aun esta abierto"
        sleep 5
        var3=$( pidof firefox )

        let var4=$var3+0

                if [ $var4 -gt 0 ]; then

                         echo "Firefox esta abierto, lo tendremos que cerrar"
                         pkill -9 firefox
                else

                    echo "Firefox no esta abierto"

                fi

        echo "esperando 5 segundos para volver a ejecutar la aplicacion"
        sleep 5
        nohup /usr/lib/firefox/firefox &
    else
    echo "La memoria aun es estable, el espacio usado es de $var1 MB y libre de $varl MB"
    fi

sleep 1

done


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Matar un proceso con un bat
Scripting
Meta 2 9,118 Último mensaje 7 Agosto 2007, 23:20 pm
por Siuto
Matar proceso en VB6 « 1 2 »
Programación Visual Basic
& eDu & 11 13,955 Último mensaje 28 Junio 2008, 00:14 am
por astaroth_15
[Bash] Abrir un proceso o otro script bash en una nueva shell
Scripting
nhaalclkiemr 2 14,393 Último mensaje 27 Agosto 2011, 06:23 am
por nhaalclkiemr
Crear proceso en C con Codeblocks que no muera al matar al proceso padre
Programación C/C++
DrKillador 6 4,645 Último mensaje 15 Julio 2013, 13:39 pm
por DrKillador
Matar proceso segun su uso de cpu o memoria ram Window 7
.NET (C#, VB.NET, ASP)
eleze 5 4,915 Último mensaje 7 Enero 2018, 03:26 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines