Un espace si dense
TRUCS BASH

Programme à exécution unique

vendredi 13 juillet 2007 par guillaume

J’aime bien regarder la terre (et les autres planètes) depuis mon écran d’ordinateur. Pour celà, j’utilise le programme xplanet [1] pour mon fond d’écran, programme qui se met à jour toutes les 30 minutes [2] grace à un script nommé xplanet-gnome. Problème : si je quitte ma session et si j’y retourne, j’ai 2 instances de xplanet-gnome qui tournent en même temps, et qui ont tendance à enlever mon fond d’écran. Solution : quand on démarre xplanet-gnome, il faut killer les autres instances :

L’idée : récupérer le PID du programme xplanet-gnome qui vient de se lancer. Puis récupérer tous les PID de xplanet-gnome à l’aide de `pgrep xplanet-gnome`, et killer tous ces PID sauf celui du programme.

Pour récupérer le PID du programme exécuté en bash, c’est $$. On a donc le code suivant :


#!/bin/bash

#petit script pour que seul une instance de xplanet-gnome soit lancee
machin=$(pgrep xplanet-gnome)
for j in $machin; do
        if [ $j != $$ ]; then
                kill $j
        fi
done

# et la suite de xplanet-gnome

Accueil du site | Contact | Plan du site | Espace privé | visites : 50627

RSS RSSfr

Site réalisé avec SPIP 1.8.3 + ALTERNATIVES