Je travaille avec des scripts propriétaires pour un projet Linux intégré. L'un des scripts remplace les exécutables de redémarrage et d'arrêt dans/sbin/par un lien symbolique vers un programme Perl. J'ai exécuté ce script prématurément et maintenant il me manque ces deux exécutables.
Mes efforts pour trouver quel paquet sous Linux contient ces exécutables ont été vains, j'ai essayé upstart ainsi que plusieurs autres que je pourrais penser ou rechercher.
Des conseils pour récupérer\réinstaller ces exécutables? Je peux toujours simplement utiliser init 0 et init 6 ... mais je préférerais les exécutables.
Je pense que les réponses ci-dessus peuvent donner le résultat, mais j'utiliserai une approche logique pour atteindre le même résultat.
Pour savoir quel fichier spécifique appartient à quel package vous pouvez utiliser:
dpkg -S /path-to-file
Maintenant, vérifions shutdown
andreboot
path
$which shutdown
/sbin/shutdown
$which reboot
/sbin/reboot
Maintenant vérifions le paquet lui appartenant
$ dpkg -S /sbin/shutdown
upstart: /sbin/shutdown
$ dpkg -S /sbin/reboot
upstart: /sbin/reboot
En guise de conclusion, shutdown
etreboot
appartiennent au package upstart
name__, vous pouvez donc maintenant réinstaller simplement le paquet.
Sudo apt-get install --reinstall upstart
Tout le monde a adopté la version 14 et vous a dit de regarder où vous aviez déjà regardé sans succès. Ils ont manqué l'indice où vous avez dit dans la question:
Mes efforts pour trouver quel paquet dans Linux contient ces exécutables ont été vains, J'ai essayé par la suite
Sur la version 15 prête à l'emploi, il n'y a pas de tels exécutables. Ils étaient des liens symboliques, pour commencer, fournis par le paquet systemd-sysv . Vous n'avez pas besoin de réinstaller quoi que ce soit, vraiment. Le programme que vous avez exécuté avec ces noms n'a pas été supprimé. Vous venez de remettre les liens symboliques.
ln -f -s - ../bin/systemctl /sbin/reboot ln -f -s - ../bin/systemctl/sbin/shutdown
Bien entendu, ce que vous avez dit à propos de upstart, c’est que ces commandes ont été supprimées du paquet upstart pour la version 15, précisément pour pouvoir l’installer subordonné à systemd. Les commandes et l'instrumentation upstart conflictuelles nécessaires à l'exécution de upstart en tant que processus n ° 1 ont été déplacées dans le paquet upstart-sysv . Alors bien sûr, vous ne les avez pas trouvés dans le paquet upstart.
Ne mélangez pas et ne faites pas correspondre ces outils. systemd-sysv
ou upstart-sysv
. Pas un mélange des deux. Comme je l'ai dit, sur systemd Ubuntu Linux version 15, vous pouvez simplement restituer directement les liens symboliques sans s'embarrasser de paquets.
Dans mon système, /sbin/reboot
est fourni par
[romano:~] % apt-file search /sbin/reboot
molly-guard: /usr/sbin/reboot
upstart: /sbin/reboot
il semble donc que le paquet upstart
le contienne; ceci est confirmé ici: http://packages.ubuntu.com/trusty/AMD64/upstart/filelist
Si vous téléchargez le package à partir de http://archive.ubuntu.com/ubuntu/pool/main/u/upstart/ (changez votre version, clairement) et l'ouvrez avec un gestionnaire d'archives, vous avez:
... alors oui, c'est là. Vous devriez pouvoir les récupérer avec une réinstallation; en principe, il devrait être
apt-get install --reinstall upstart
mais attention, ceci est un paquet assez basique, donc je vais le faire sur la console, sans interface graphique, et probablement en mode mono-utilisateur (c'est la raison pour laquelle j'ai omis le Sudo
nécessaire ici) . bien que peut-être c'est exagéré.
Vous pouvez trouver à peu près tout ce que vous cherchez avec l'excellent moteur de recherche de paquets Ubuntu. Par exemple redémarrage et arrêt.
Vous pouvez filtrer vos résultats par architecture et par version.
Sur la base de ce qui est montré, vous recherchez le paquet upstart.
Les tests indiquent que vous pouvez réinstaller correctement avec la commande Sudo apt-get install --reinstall upstart
. J'ai redémarré juste pour m'assurer que Upstart fonctionnait correctement. J'ai entré la commande dans une fenêtre de terminal.
Ces résultats ont été obtenus sur Ubuntu 14.04 LTS