Parvenu sur Debian?

20

J'ai créé un script parvenu dans Ubuntu, pensant que ce serait la même chose pour Debian. Mais Debian n'a pas de /etc/initdossier qu'Ubuntu possède. Je suis allé à la page de téléchargement parvenu et en voyant qu'ils ont des paquets, j'ai fait apt-get install upstart, mais il demande de supprimer sysvinit, qui je sais va / pourrait bousiller mon système. Alors, comment faire fonctionner mon script Ubuntu sur Debian?

theTuxRacer
la source

Réponses:

12

Il ne s'agit pas directement de Debian vs Ubuntu, il s'agit de SysVinit vs Upstart . Debian utilise par défaut SysVinit; vous pouvez installer Upstart, mais vous devez savoir ce que vous faites, et vous devez le connaître avant même de penser à l'installer sur un serveur de production. Bien qu'il soit théoriquement possible d'installer les deux, avec un seul d'entre eux fonctionnant en tant que processus numéro 1, Debian ne prend pas cela en charge.

Upstart est plus jeune que SysVinit et dispose de plus de capacités, ce qui explique pourquoi vous ne pouvez pas simplement prendre une description de service Upstart et la transmettre à SysVinit. Vous devrez écrire un script pour/etc/init.d . Fondamentalement , que les besoins de script pour regarder son premier argument ( $1) et start, stopou restartle service selon les directives.

Si vous utilisiez des événements Upstart pour déterminer quand démarrer le script, vous devrez utiliser d'autres méthodes. Upstart rassemble des événements de nombreuses sources différentes; vous pouvez obtenir le déclencheur partout où Upstart l'obtient, Upstart à cet égard est juste un moyen pratique de ne pas avoir à rechercher des déclencheurs dans de nombreux endroits et protocoles différents.

Gilles 'SO- arrête d'être méchant'
la source
Alors comment se fait-il qu'Ubuntu utilise à la fois upstart et SysVinit (ou semble)?
ColinM
@ColinM Ubuntu n'utilise pas SysVinit.
Gilles 'SO- arrête d'être méchant'
5

La raison pour laquelle cela va être supprimé sysvinitest que ces deux éléments sont des conflits. Notez également que cela sysvinitest considéré comme essentiel (lire: à ne pas supprimer, sauf si vous savez ce que vous faites ).

Une partie de la sortie de «aptitude show upstart»:

Conflicts: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job

Si vous pouvez vous permettre d'arroser votre système, allez-y et installez-le.

tshepang
la source
Non, c'est un serveur de production. N'y a-t-il aucun moyen de créer un service que je peux démarrer et arrêter à partir du terminal?
theTuxRacer
Mettez ensuite votre script dans /etc/init.det faites-lui comprendre le minimum de start|stop|restartcommandes. Vous n'avez pas besoin upstartd'exécuter le script, seulement votre ligne de commande habituelle.
alex
@kau Que diriez-vous de cloner votre serveur de production sur une machine de test et d'installer upstart, et de tester?
tshepang
@alex @Tshepang Pouvez-vous jeter un œil et conseiller, s'il vous plaît? paste.ubuntu.com/555683 Le bocal n'est pas exécuté.
theTuxRacer
Vous n'en avez pas besoin exec- allez lire des pages de manuel et / ou des livres sur les scripts shell.
alex