Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/09/2008, à 17:32

PH

Affichage momentané [Résolu]

Bjr,
Je cherche une commande permettant le lancement d'un applet, d'un desklet, d'un conky ou d'une appli quelconque mais dont l'affichage ne serait que momentané, c'est à dire limité dans le temps (par exemple afficher une horloge sur le bureau, juste le temps de lire l'heure)
Merci
@+

Dernière modification par PH (Le 01/09/2008, à 22:45)

Hors ligne

#2 Le 01/09/2008, à 21:55

enguerran

Re : Affichage momentané [Résolu]

Il y a très certainement mieux, mais en attendant, tu peux toujours faire ça dans un script exécutable :

#!/bin/bash
xclock &
sleep 3
kill `pidof xclock`

Ça lance xclock pendant 3 secondes puis kill le process correspond.

Si tu as plusieurs process portant le même nom, ce script les tuera tous ... Donc pas top génial ce script ^^

Dernière modification par enguerran (Le 01/09/2008, à 22:02)


Ubuntu Lucid (qui fonctionne au poil ^^)

Hors ligne

#3 Le 01/09/2008, à 22:00

wido

Re : Affichage momentané [Résolu]

trop classe et un de plus dans la scriptothèque

Hors ligne

#4 Le 01/09/2008, à 22:03

PH

Re : Affichage momentané [Résolu]

Re-
Ben si c'est pas mal du tout. Cette commande "sleep" je connaissais pas
J'attends d'avoir d'autres propositions, mais c'est pratiquement résolu
Merci enguerran
@+

Hors ligne

#5 Le 01/09/2008, à 22:05

enguerran

Re : Affichage momentané [Résolu]

Ouais... enfin, si vous voulez l'utiliser pour de vrai, je vais réfléchir à quelque chose d'un peu plus robuste...
Je poste dès que j'ai un script un peu mieux


Ubuntu Lucid (qui fonctionne au poil ^^)

Hors ligne

#6 Le 01/09/2008, à 22:08

PH

Re : Affichage momentané [Résolu]

Re-
Et si on met "pidof -s" est-ce que ça ne limite pas le kill à 1 seule commande ?
@+

Hors ligne

#7 Le 01/09/2008, à 22:19

enguerran

Re : Affichage momentané [Résolu]

#!/bin/bash

# command : nom de la commande à lancer, passée en premier paramètre du script
command=$1

# time : durée (en secondes par défaut) pendant laquelle
# la commande "command" doit s'éxecuter,
# passée en second paramètre du script
time=$2

# on exécute la commande "command"
$1 &

# on récupère le process id de cette commande
pid=$!

# on attend $time secondes
sleep $time

# et on kille la command "command"
kill $pid

Comme ça ça ne kille que le bon process.

En sauvegardant mon script dans un fichier monScript, on le lance comme ça (en reprenant l'exemple du xclock pendant 3 secondes ):

./monScript 'xclock -bg white -update 1' 3s

Dernière modification par enguerran (Le 01/09/2008, à 22:53)


Ubuntu Lucid (qui fonctionne au poil ^^)

Hors ligne

#8 Le 01/09/2008, à 22:25

enguerran

Re : Affichage momentané [Résolu]

PH a écrit :

Re-
Et si on met "pidof -s" est-ce que ça ne limite pas le kill à 1 seule commande ?
@+

"pidof -s" ne renvoie qu'un id, mais pas forcément le bon si on plusieurs process avec le même nom


Ubuntu Lucid (qui fonctionne au poil ^^)

Hors ligne

#9 Le 01/09/2008, à 22:29

PH

Re : Affichage momentané [Résolu]

Re-
Ok , ton second script est super aussi. Avec l'avantage d'avoir un script "générique"
Re-merci
P.....quel forum !
@+

Dernière modification par PH (Le 01/09/2008, à 22:30)

Hors ligne

#10 Le 01/09/2008, à 22:39

enguerran

Re : Affichage momentané [Résolu]

Passe ton sujet en "Résolu" si la solution te convient ;-)


Ubuntu Lucid (qui fonctionne au poil ^^)

Hors ligne

#11 Le 01/09/2008, à 22:43

PH

Re : Affichage momentané [Résolu]

Re-
Oui j'y venais justement.
A noter que le "s" en fin de commande n'est pas utile, apparemment
@+

Hors ligne

#12 Le 01/09/2008, à 22:46

enguerran

Re : Affichage momentané [Résolu]

Oui pour le "s", c'était juste pour indiquer qu'on pouvait indiquer une unité de temps. Mais la seconde est bien l'unité par défaut, on peut omettre le 's'.


Ubuntu Lucid (qui fonctionne au poil ^^)

Hors ligne