Démarrage-upstart-job
Bonjour, bonsoir,
Sous Linux (ubuntu 11.04 précisément), je voudrais savoir à quoi sert la commande /lib/init/upstart-job. Avec l'histoire des runlevels, j'ai pu comprendre que les services qui sont démarrés pour un niveau d'exécution N, dépendent des liens symboliques se trouvant dans le répertoire /etc/rcN.d/ qui pointent vers des scripts localisés dans /etc/init.d/. Le fait est que j'ai remarqué que ce dernier dossier contient également des liens symboliques vers /lib/init/upstart-job.
A quoi sert donc cette commande?
J'ai cherché mais j'ai rien trouvé.
De plus, j'ai remarqué qu'il y a des programmes qui se lancent au boot mais que j'arrive pas à localiser dans ces dossiers. Par exemple, j'ai téléchargé un programme: alarm-clock. Il lance son daemon au boot. J'ai trouvé dans /etc/init.d/ hw-clock qui pointe vers le fameux /lib/init/upstart-job.
Je voudrais donc savoir dans quelle phase du boot et par quoi ils sont lancés?
rcsysinit?
rc.local?
Quoi?
J'espère avoir été clair.
Merci d'avance pour votre aide!!!
Sous Linux (ubuntu 11.04 précisément), je voudrais savoir à quoi sert la commande /lib/init/upstart-job. Avec l'histoire des runlevels, j'ai pu comprendre que les services qui sont démarrés pour un niveau d'exécution N, dépendent des liens symboliques se trouvant dans le répertoire /etc/rcN.d/ qui pointent vers des scripts localisés dans /etc/init.d/. Le fait est que j'ai remarqué que ce dernier dossier contient également des liens symboliques vers /lib/init/upstart-job.
A quoi sert donc cette commande?
J'ai cherché mais j'ai rien trouvé.
De plus, j'ai remarqué qu'il y a des programmes qui se lancent au boot mais que j'arrive pas à localiser dans ces dossiers. Par exemple, j'ai téléchargé un programme: alarm-clock. Il lance son daemon au boot. J'ai trouvé dans /etc/init.d/ hw-clock qui pointe vers le fameux /lib/init/upstart-job.
Je voudrais donc savoir dans quelle phase du boot et par quoi ils sont lancés?
rcsysinit?
rc.local?
Quoi?
J'espère avoir été clair.
Merci d'avance pour votre aide!!!
A voir également:
- Démarrage-upstart-job
- Forcer demarrage pc - Guide
- Ordinateur lent au démarrage - Guide
- Reinitialiser pc au demarrage - Guide
- Problème démarrage windows 10 - Guide
- Demarrage windows 10 - Guide
3 réponses
upstart est la nouvelle chaîne de démarrage de linux (et elle est bien plus rapide que l'ancienne), mais le concept de runlevel n'a pas évolué. Je ne sais pas si ça va t'aider mais voici à mon avis ce qu'il faut retenir du démarrage de linux.
Chaque runlevel correspond à un état particulier de ta machine (à l'époque ces états étaient décrits dans /etc/inittab), mais grosso modo :
- 0 : halt : on arrête la machine
- 1 : on lance un minimum de service
- 2-5 : la signification dépend d'une distribution à l'autre, sous debian par exemple, 2 est le runlevel par défaut, les autres ne sont pas utilisés
- 6 : reboot
Quand tu déclenches l'arrêt de ta machine ou son redémarrage, par exemple avec la commande "halt" ou "reboot" tu déclenches un changement de runlevel (que tu dois pouvoir aussi reproduire avec la commande "init").
En fonction des liens symboliques configurés dans les répertoires /etc/rc*.d, ceci déclenche l'arrêt (K comme kill) ou le démarrage (S comme start) de certains services et dans un ordre donné (voir l'entier situé après la lettre K ou S). Ceci était effectué par le script /etc/init.d/rc dans sysv-init-rc (la chaîne de démarrage avant upstart).
Ces liens symboliques pourraient être créés à la main, mais sous debian (et ubuntu) on passera plutôt par la commande update-rc.d. En pratique on n'a jamais à l'utiliser (du moins tant qu'on installe tout via des paquets).
Chez moi le fichier /lib/init/upstart-job est vide. Difficile de dire à quoi il sert. /etc/init.d/ hw-clock sert a configuré l'horloge de la carte mère a priori. Après si tu veux plus de détails, je pense qu'il faut creuser dans le man ou ici :
http://upstart.ubuntu.com/wiki/
Bonne chance
Chaque runlevel correspond à un état particulier de ta machine (à l'époque ces états étaient décrits dans /etc/inittab), mais grosso modo :
- 0 : halt : on arrête la machine
- 1 : on lance un minimum de service
- 2-5 : la signification dépend d'une distribution à l'autre, sous debian par exemple, 2 est le runlevel par défaut, les autres ne sont pas utilisés
- 6 : reboot
Quand tu déclenches l'arrêt de ta machine ou son redémarrage, par exemple avec la commande "halt" ou "reboot" tu déclenches un changement de runlevel (que tu dois pouvoir aussi reproduire avec la commande "init").
En fonction des liens symboliques configurés dans les répertoires /etc/rc*.d, ceci déclenche l'arrêt (K comme kill) ou le démarrage (S comme start) de certains services et dans un ordre donné (voir l'entier situé après la lettre K ou S). Ceci était effectué par le script /etc/init.d/rc dans sysv-init-rc (la chaîne de démarrage avant upstart).
Ces liens symboliques pourraient être créés à la main, mais sous debian (et ubuntu) on passera plutôt par la commande update-rc.d. En pratique on n'a jamais à l'utiliser (du moins tant qu'on installe tout via des paquets).
Chez moi le fichier /lib/init/upstart-job est vide. Difficile de dire à quoi il sert. /etc/init.d/ hw-clock sert a configuré l'horloge de la carte mère a priori. Après si tu veux plus de détails, je pense qu'il faut creuser dans le man ou ici :
http://upstart.ubuntu.com/wiki/
Bonne chance
Merci d'une si prompte réponse mamiemando, j'aurais appris quelque chose et je vais continuer à chercher. Si j'apprends quelque chose de solide, je mettrais à jour ce poste.
Encore merci!
Encore merci!
Alors je retire un truc que j'ai dit, ce matin je t'ai écrit alors qu'upstart n'était pas installé :-) La chaîne que je t'ai décrite concerne essentiellement sysvinit-rc. Depuis, j'ai installé upstart et /lib/init/upstart-job est créé. Il sert (servait) manifestement à rattraper les commandes du genre :
qui sont dépréciées au profit par exemple de :
Chez moi ce fichier contient désormais :
J'ai décommenté le echo qui s'y trouve pour voir si on y passe (via un /etc/init.d ou un service), mais il ne semble plus être traversé, et du coup je suis un peu perplexe sur son utilité (ou plutôt, quand est-il utilisé).
... on trouve pas mal d'information, notamment le fait qu'upstart repose sur /etc/init et que /etc/init/rc.conf assure la compatibilité avec l'ancienne chaîne de lancement. On retrouve ce qu'il y avait dans /etc/inittab (runlevel par défaut, lancement des tty) dans les différents fichiers présents dans ce répertoire.
Rappelons qu'init est un processus lancé par le noyau et être parent de tous les autres processus ce qu'on peut résumé à "le noyau lance un processus pour amorcer la pompe, ceux qui suivent (et qui font partie du système exploitation) seront lancé grâce à ce processus, notamment tous les services lancés au démarrage).
Si tu lances la commande :
... tu verras que le paquet upstart écrase toutes les commandes de sysvinit qui permettent de gérer le lancement :
.... ce qui explique pourquoi init arrive à travailler avec ces nouveaux fichiers de configuration (on a en fait simplement remplacé init pour qu'il marche dans ce contexte !). C'est d'ailleurs pour cela que le paquet upstart et sysvinit-rc ne peuvent être installés simultanément (car /sbin/init notamment est en conflit). Comme /sbin/init est même un exécutable essentiel (cf plus haut) apt t'affichera même un énorme avertissement au moment de désinstaller sysvinit-rc au profit d'upstart, ce qui est tout à fait normal.
Si tu veux plus de détails sur les rouages d'upstart, je t'invite à regarder le man :
Est-ce que tout ceci répond à tes interrogations ?
/etc/init.d/ssh start
qui sont dépréciées au profit par exemple de :
service ssh start
Chez moi ce fichier contient désormais :
#!/bin/sh # Get the service name service=$(basename $0 | sed s/[SK][0-9][0-9]//) action=$1 if [ $(id -u) -ne 0 ]; then echo "Not running as root. Exiting..." exit 1 fi # Disable this warning for now #echo "*** Calling /etc/init.d/$service $action directly has been deprecated ***" case "$action" in start) echo "Starting $service..." start "$service" ;; stop) echo "Stopping $service..." stop "$service" ;; restart|reload|force-reload) echo "Restarting $service..." restart "$service" ;; status) status "$service" ;; lsb-header) # TODO exit 1 ;; *) echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 exit 3 ;; esac
J'ai décommenté le echo qui s'y trouve pour voir si on y passe (via un /etc/init.d ou un service), mais il ne semble plus être traversé, et du coup je suis un peu perplexe sur son utilité (ou plutôt, quand est-il utilisé).
... on trouve pas mal d'information, notamment le fait qu'upstart repose sur /etc/init et que /etc/init/rc.conf assure la compatibilité avec l'ancienne chaîne de lancement. On retrouve ce qu'il y avait dans /etc/inittab (runlevel par défaut, lancement des tty) dans les différents fichiers présents dans ce répertoire.
Rappelons qu'init est un processus lancé par le noyau et être parent de tous les autres processus ce qu'on peut résumé à "le noyau lance un processus pour amorcer la pompe, ceux qui suivent (et qui font partie du système exploitation) seront lancé grâce à ce processus, notamment tous les services lancés au démarrage).
Si tu lances la commande :
apt-file list upstart
... tu verras que le paquet upstart écrase toutes les commandes de sysvinit qui permettent de gérer le lancement :
(root@aldur) (/etc/init) # apt-file list upstart | grep "^upstart:" | grep "bin/" upstart: /sbin/halt upstart: /sbin/init upstart: /sbin/initctl upstart: /sbin/poweroff upstart: /sbin/reboot upstart: /sbin/reload upstart: /sbin/restart upstart: /sbin/runlevel upstart: /sbin/shutdown upstart: /sbin/start upstart: /sbin/status upstart: /sbin/stop upstart: /sbin/telinit
.... ce qui explique pourquoi init arrive à travailler avec ces nouveaux fichiers de configuration (on a en fait simplement remplacé init pour qu'il marche dans ce contexte !). C'est d'ailleurs pour cela que le paquet upstart et sysvinit-rc ne peuvent être installés simultanément (car /sbin/init notamment est en conflit). Comme /sbin/init est même un exécutable essentiel (cf plus haut) apt t'affichera même un énorme avertissement au moment de désinstaller sysvinit-rc au profit d'upstart, ce qui est tout à fait normal.
Si tu veux plus de détails sur les rouages d'upstart, je t'invite à regarder le man :
man upstart man initctl
Est-ce que tout ceci répond à tes interrogations ?