¿Advenedizo en Debian?


20

Creé un script inicial en Ubuntu, pensando que sería lo mismo para Debian. Pero Debian no tiene una /etc/initcarpeta que Ubuntu tenga. Fui a la página de descarga inicial y vi que tienen paquetes, hice un apt-get install upstart, pero me pide que elimine sysvinit, que sé que arruinará mi sistema. Entonces, ¿cómo hago para que mi script Ubuntu funcione en Debian?

Respuestas:


12

No se trata directamente de Debian vs Ubuntu, se trata de SysVinit vs Upstart . Debian por defecto es SysVinit; puede instalar Upstart, pero necesita saber lo que está haciendo, y debe estar familiarizado con él antes de siquiera pensar en instalarlo en un servidor de producción. Aunque en teoría es posible instalar ambos, con solo uno de ellos ejecutándose como proceso número 1, Debian no admite esto de inmediato.

Upstart es más joven que SysVinit y tiene más capacidades, lo que explica por qué no puede simplemente tomar una descripción del servicio Upstart y enviarla a SysVinit. Tendrás que escribir un guión para/etc/init.d . Básicamente, esa secuencia de comandos necesita mirar su primer argumento ( $1) y start/ stopo restartel servicio como se indica.

Si estaba utilizando eventos Upstart para determinar cuándo iniciar el script, tendrá que usar otros métodos. Upstart reúne eventos de muchas fuentes diferentes; puede obtener el desencadenante desde donde lo obtenga Upstart, Upstart a este respecto es solo una forma conveniente de no tener que buscar desencadenantes en muchos lugares y protocolos diferentes.


Entonces, ¿cómo es que Ubuntu usa tanto el advenedizo como SysVinit (o parece)?
ColinM

@ColinM Ubuntu no usa SysVinit.
Gilles 'SO- deja de ser malvado'

5

La razón por la que se eliminará sysvinites porque estos dos son conflictos. Además, tenga en cuenta que sysvinitse considera esencial (lea: no se debe quitar, a menos que sepa lo que está haciendo ).

Parte de la salida de 'aptitude show upstart`:

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

Si puede permitirse el lujo de instalar su sistema, continúe e instálelo.


No, es un servidor de producción. ¿No hay forma de que pueda crear un servicio que pueda iniciar y detener desde la terminal?
theTuxRacer

Luego ingrese su script /etc/init.dy haga que comprenda el mínimo de start|stop|restartcomandos. No necesita upstartejecutar el script, solo su línea de comando habitual.
alex

@kau ¿Qué tal que clonar el servidor de producción en cierta máquina de prueba e instalar advenedizo, y la prueba?
tshepang

@alex @Tshepang ¿Puedes echar un vistazo y aconsejar, por favor? paste.ubuntu.com/555683 El jar no se ejecuta.
theTuxRacer

No necesita execallí: vaya a leer algunas páginas de manual y / o libros sobre scripting de shell.
alex
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.