Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Assemblée Générale Ordinaire de Borsalinux-fr le 22 février à Paris

#1 12/06/2009 13:23:34

inouire
Membre
Inscription : 01/06/2009
Messages : 125

retarder le démarrage d'un programme à l'ouverture de session

Bonjour,
J'aimerai pouvoir faire démarrer Cairo-Dock après tout le reste (après Compiz notament) car j'ai constaté que ça fonctionnait mieux ainsi.
Seulement tout semble se lancer à la fois, du moins dans n'importe quel ordre.

Donc actuellement j'utilise l'interface graphique: Système->Préférences->Personnel-> Session
J'ai rajouté la commmande "cairo-dock" (qui lance le dock...ah bon?)

Est ce qu'il ya une option pour retarder l'éxecution du dock ?
J'ai testé naïvement comme commande à executer (comme pour la capture d'écran):

cairo-dock --delay 10

Et aussi (comme j'ai vu pour ubuntu)

sleep 10 && cairo-dock

Voilà seulement il ne se lance pas du tout (ces options ne doivent pas exister en fait)
Quelqu'un connait comment faire pour retarder le lancement?
Merci

Hors ligne

#2 12/06/2009 14:12:04

pmarion
Pacsé avec le forum
Lieu : 95000 CERGY
Inscription : 14/11/2006
Messages : 8 032

Re : retarder le démarrage d'un programme à l'ouverture de session

cairo-dock --delay 10

Dans ce cas --delay est une option de la commande et il faut vérifier (dans un terminal?) que cette option existe bien et entraîne un retardement du lancement de la commande.


sleep 10 && cairo-dock

N'est pas une option mais en fait deux commandes enchainées par un ET logique
sleep 10    :: Attente de 10 secondes
cairo-dock :: Lancement de la commande cairo-dock

Où se trouve la commande cairo-dock
type cairo-dock

Hors ligne

#3 12/06/2009 14:19:42

inouire
Membre
Inscription : 01/06/2009
Messages : 125

Re : retarder le démarrage d'un programme à l'ouverture de session

alors effectivement --delay n'est pas une option du programme.

donc oui sleep 10 && cairo-dock ça fonctionne dans un terminal, mais alors comment faire pour que ceci fonctionne en ouverture de session?

EDIT: problème résolu

En allant me balader dans /usr/bin j'ai trouvé un script existant déjà :"launch-cairo-dock-afeter-beryl.sh" qui est tout bête d'ailleurs:

#we wait 12 seconds so that Beryl gets ready (you may need more or less)
sleep 12
# the path of cairo-dock (may be different for you)
cairo-dock

voilà donc vraiment pas compliqué...et donc dans le menu "Session" mettre "/usr/bin/launch-cairo-dock-after-beryl.sh" au lieu de "cairo-dock"

Désolé si ça parait simplissime à certains mais je découvre un peu la magie des scripts....

Merci tu m'as aidé quand même!

Dernière modification par inouire (12/06/2009 14:44:01)

Hors ligne

#4 12/06/2009 15:42:20

Did
Membre
Lieu : nul part
Inscription : 11/01/2005
Messages : 2 457

Re : retarder le démarrage d'un programme à l'ouverture de session

Salut,

Je profite de ce sujet pour poser une question :

Je veux lancer 4 applications avec 10 secondes entre chacune d'elles, ces 4 applications resteront "ouvertes" dans l'ordre d'apparition à l'écran, comment procéder ?

Dans un script j'écris :

#! /bin/sh
appli_1 &
sleep 10 &
appli_2 &
sleep 10 &
appli_3 &
sleep 10 &
appli_4 &

Mais les applications ne s'ouvent pas dans l'ordre et le sleep ne fonctionne pas....

Hors ligne

#5 12/06/2009 15:58:31

DalP
Membre
Lieu : Alsace
Inscription : 19/06/2006
Messages : 293

Re : retarder le démarrage d'un programme à l'ouverture de session

Je ne suis pas spécialiste des scripts, mais d'après ce que j'en sais, voilà comment j'interprète le tien : le '&' en fin de ligne indique que la ligne suivante doit être exécutée avant la fin de la ligne en cours.
Donc les 7 lignes de ton script sont exécutées l'une à la suite de l'autre sans temps de pause.
Dans ton cas, il faudrait mieux mixer '&' et '&&' (qui exécute la commande suivante après la fin de précédente) [du coup ça devient compliqué ce que j'écris hammer]
En pratique :

#! /bin/sh
appli_1 &
sleep 10 && appli_2 &
sleep 10 && appli_3 &
sleep 10 && appli_4 &

A tester et à confirmer !


Asus eeePC 1002HA - Hyundai W220D
Bannière - F15

Hors ligne

#6 12/06/2009 16:38:17

Did
Membre
Lieu : nul part
Inscription : 11/01/2005
Messages : 2 457

Re : retarder le démarrage d'un programme à l'ouverture de session

OK j'ai trouvé : la solution vient du ";" (point-virgule)

appli_1& sleep10;
appli_2& sleep10;
appli_3& sleep10;
etc....

merci pour l'orientation vers la solution wink

Dernière modification par Did (12/06/2009 16:39:15)

Hors ligne

#7 12/06/2009 16:52:19

inouire
Membre
Inscription : 01/06/2009
Messages : 125

Re : retarder le démarrage d'un programme à l'ouverture de session

les ; sont indispensables?
sur mon script, rien n'apparait...juste des retours à la ligne

Hors ligne

#8 12/06/2009 19:07:31

Did
Membre
Lieu : nul part
Inscription : 11/01/2005
Messages : 2 457

Re : retarder le démarrage d'un programme à l'ouverture de session

Oui, ça permet de chainer les applications.

Tu veux bien nous faire voir ton script ?.... s'il te plait wink

Hors ligne

#9 12/06/2009 19:22:30

Did
Membre
Lieu : nul part
Inscription : 11/01/2005
Messages : 2 457

Re : retarder le démarrage d'un programme à l'ouverture de session

je viens d'ouvrir un nouveau sujet pour ça...

Hors ligne

#10 12/06/2009 19:58:39

inouire
Membre
Inscription : 01/06/2009
Messages : 125

Re : retarder le démarrage d'un programme à l'ouverture de session

mon script? texto celui que j'ai écrit au début ! avec

#! /bin/sh

au début...en fait il existait déjà !

Hors ligne

#11 12/06/2009 20:15:24

Doudaal
Membre
Inscription : 22/08/2008
Messages : 10
Site Web

Re : retarder le démarrage d'un programme à l'ouverture de session

- le & après une commande ça veut dire que l'on détache le processus que l'on lance, de son processus père (en général le terminal)
Quel intérêt ? Quand un processus meurt, tout ses fils meurent aussi, c'est une règle (l'esprit de famille...) donc si vous lancez par exemple firefox dans votre terminal à l'aide de la commande

firefox

puis que vous quittez ce terminal, firefox va quitter aussi
alors qu'avec

firefox&

ça ne sera pas le cas car firefox ne sera plus un fils du terminal

- le && entre deux commande ca veut dire qu'on execute la deuxième en cas de succès de la première

Hors ligne

#12 14/06/2009 13:09:57

BBT
Membre
Inscription : 01/07/2008
Messages : 130

Re : retarder le démarrage d'un programme à l'ouverture de session

Doudaal a écrit :

- le & après une commande ça veut dire que l'on détache le processus que l'on lance, de son processus père (en général le terminal)
Quel intérêt ? Quand un processus meurt, tout ses fils meurent aussi, c'est une règle (l'esprit de famille...) donc si vous lancez par exemple firefox dans votre terminal à l'aide de la commande

firefox

puis que vous quittez ce terminal, firefox va quitter aussi
alors qu'avec

firefox&

ça ne sera pas le cas car firefox ne sera plus un fils du terminal

- le && entre deux commande ca veut dire qu'on execute la deuxième en cas de succès de la première

Si le terminal ayant lancé un processus en background en perdait la paternité,
il ne pourrait plus faire un 'wait' dessus. Et ce n'est pas le cas.

Le processus fils ne change de père que lorsque son père meurt,
auquel cas son init l'adopte et devient son nouveau père.

Si tu n'es pas du genre à croire les gens sur parole (personnelement j'aime bien vérifier les choses par moi-même),
comme je suis de bonne humeur je te fais le code C qui prouve ce que je raconte :

#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
  printf("pid = %d, ppid = %d\n",
         getpid(), getppid());
  return EXIT_SUCCESS;
}

Et tu le lance avec et sans '&'

Hors ligne

#13 14/06/2009 13:26:44

Doudaal
Membre
Inscription : 22/08/2008
Messages : 10
Site Web

Re : retarder le démarrage d'un programme à l'ouverture de session

Ok, j'ai compris !
Merci de la correction

Hors ligne

Pied de page des forums