Bienvenido a Tecnohackers

Tecnohackers » Programacion » Area de Programacion » Scripting. VBS, Batch, Bash, JavaSript.
 » 

[BASH] Matar proceso según la memoria libre



Autor Tema: [BASH] Matar proceso según la memoria libre  (Leído 1419 veces)

Desconectado ymk369

  • Recien Llegado
  • *
  • Mensajes: 1
[BASH] Matar proceso según la memoria libre
« en: Agosto 16, 2015, 08:27:05 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: You are not allowed to view links. Register or Login

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

Tags:
Tags:

 


SMF 2.0.19 | SMF © 2016, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal