30 may 2012

Script inicio de Conky mejorado para evitar forks y duplicados

Muchos usarán conky, el que no sabe que es, puede buscar en Google, pero básicamente, es un pequeño programilla, que nos informa en la pantalla, cual reloj, cosas como procesos, consumo de CPU, conexiones, memoria usada, en fin, como el HTOP pero constante y con mas opciones.

Para usar conky de forma correcta, se debe lanzar al inicio del login, con un script que lo llame, lo ponga en modo daemon, y termine.

El problema, radica en que algunos DE, como xfce, lxde, no tienen control total sobre el reinicio de sus X, es decir, cuando no queremos reiniciar el sistema, pero si las X, con ctrl+alt+backspace, vuelve a leer el script, y lanza otro conky, teniendo 2, y asi sucesivamente.

Para evitar esto, creé un script de inicio que lo evita, primero pongo el codigo, luego les digo como se usa y que hace.

start_conky code:


#!/bin/sh
# Start Conky Script for prevent forks
# Author: SynFlag
#Licence: GNU GPLv2
conky_exist=`pgrep conky`
if [ "$conky_exist" != "" ]; then
   
      killall conky > /dev/null 2>&1
      sleep 20
      nice -n 19 conky -d >/dev/null 2>&1

unset conky_exist
exit

else
      sleep 20
      nice -n 19 conky -d > /dev/null 2>&1
unset conky_exist
exit
fi


Bueno, esto lo savan como start_conky o como prefieran llamarle, menos conky claro, y lo mueven a /usr/local/bin, donde le darán permisos de ejecucion con chmod +x al script, que reitero, no debe ser, no tiene porque ser script.sh, el sh esta de más.

Este script, lo que hace, segun su lógica, es:

Asigna el numero de PID de conky a una variable, si conky no existe, no asigna nada, por tanto, NULL.

Si la variable es distinta a NULL, entonces conky existe, lo mata, espera 20 segundos (si iniciamos conky antes que el desktop por lo general no se ve), y luego lo ejecuta y sale.

Por el contrario, si conky no se esta ejecutando, con lo cual la variable no posee NULL, sino un PID numerico, espera 20 segundos, ejecuta conky y sale.

Una vez iniciado el sistema incluso, pueden correrlo una y otra vez, y verán que no van a tener conky duplicados.

Por ultimo, este script, lo colocan en la seccion de inicio, añadir, en gnome, y lo mismo en KDE, cada uno conoce en donde agregar un script de inicio al login, o si no tienen nada, pueden ponerlo en /etc/rc.local

No hay comentarios: