Avvio di Debian?


20

Ho creato uno script upstart in Ubuntu, pensando che sarebbe stato lo stesso per Debian. Ma Debian non ha una /etc/initcartella che ha Ubuntu. Sono andato alla pagina di download upstart e vedendo che hanno dei pacchetti, ho fatto un apt-get install upstart, ma mi chiede di rimuovere sysvinit, che so che potrebbe / potrebbe rovinare il mio sistema. Quindi, come faccio a far funzionare il mio script Ubuntu su Debian?

Risposte:


12

Non si tratta direttamente di Debian vs Ubuntu, ma di SysVinit vs Upstart . Debian di default su SysVinit; puoi installare Upstart, ma devi sapere cosa stai facendo e dovresti conoscerlo prima ancora di pensare di installarlo su un server di produzione. Sebbene sia teoricamente possibile installare entrambi, con uno solo di essi in esecuzione come processo numero 1, Debian non supporta questo immediatamente.

Upstart è più giovane di SysVinit e ha più capacità, il che spiega perché non puoi semplicemente prendere una descrizione del servizio Upstart e inviarla a SysVinit. Dovrai scrivere una sceneggiatura per/etc/init.d . Fondamentalmente quello script deve guardare al suo primo argomento ( $1) e start, stopo restartal servizio come indicato.

Se stavi utilizzando gli eventi Upstart per determinare quando avviare lo script, dovrai utilizzare altri metodi. Upstart raccoglie eventi da molte fonti diverse; puoi ottenere il grilletto da qualsiasi punto in cui Upstart lo ottenga, Upstart in questo senso è solo un modo conveniente di non dover cercare trigger in molti luoghi e protocolli diversi.


Allora come mai Ubuntu usa sia upstart che SysVinit (o sembra farlo)?
ColinM,

@ColinM Ubuntu non utilizza SysVinit.
Gilles 'SO- smetti di essere malvagio' il

5

Il motivo che rimuoverà sysvinitè perché questi due sono conflitti. Inoltre, nota che sysvinitè considerato essenziale (leggi: da non rimuovere, a meno che tu non sappia cosa stai facendo ).

Parte dell'output di 'aptitude show upstart`:

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

Se puoi permetterti di adattare il tuo sistema, vai avanti e installalo.


No, è un server di produzione. Non è possibile creare un servizio da avviare e arrestare dal terminale?
theTuxRacer,

Quindi inserisci il tuo script /etc/init.de fagli capire il minimo dei start|stop|restartcomandi. Non è necessario upstarteseguire lo script, solo la solita riga di comando.
alex

@kau Che ne dici di clonare il tuo server di produzione su una macchina di prova e installare upstart e testare?
Tshepang,

@alex @Tshepang Puoi dare un'occhiata e consigliarti, per favore? paste.ubuntu.com/555683 Il vaso non viene eseguito.
theTuxRacer,

Non ti serve execlì - vai a leggere alcune manpage e / o libri sugli script di shell.
alex
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.