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