boot loader

Upstart - In che modo è migliore o peggiore degli altri??

Upstart - In che modo è migliore o peggiore degli altri??
Quando Upstart fu concepito per la prima volta da Canonical, il sistema prevalente era ancora sysvinit, che avviava tutto in sequenza e si fermava più o meno dopo. Ha fatto in modo che anche il sistema si chiudesse con grazia. Ciò ha reso necessario disporre di altre soluzioni per dispositivi hot-plug come chiavette USB e simili. L'idea principale dei progettisti era quella di renderlo guidato dagli eventi, questo ha reso facile la gestione degli eventi di hot plug menzionati. Upstart può anche eseguire script sysvinit non modificati, quindi puoi migrare a Upstart con solo un'installazione. Questo progetto è solo in modalità di manutenzione, quindi usa questo post come un pezzo interessante. Potresti imbatterti in questo sistema in vecchi sistemi aggiornati.

In cosa differisce Upstart??

Upstart ha un modello per avviare qualsiasi lavoro disponibile quando si verifica l'evento. Confronta questo con systemd, che avvia i processi che hanno tutti gli altri sistemi in esecuzione. La differenza principale è che Upstart è in attesa di eventi e systemd sta coordinando le dipendenze. Entrambi i sistemi possono eseguire script regolari ed entrambi cercano di avviarsi in parallelo. Poiché le differenze sono così piccole, gli script Upstart di solito possono essere chiamati semplicemente con un file di servizio systemd. Possono anche eseguire entrambi file systemV invariati. In effetti, entrambi cercano una vecchia struttura di file systemV per impostazione predefinita. La grande differenza è che Upstart cerca eventi definiti per avviare qualsiasi cosa. Quindi, se vuoi aggiungere il tuo servizio, devi capire in quale contesto hai bisogno del tuo servizio. Di solito questo è facile poiché vorrai qualcosa che venga eseguito, ad esempio, sul tuo desktop. Il desktop inizia con l'evento runlevel 5, quindi lo imposti nel tuo script. Per systemd, al contrario, questo è l'obiettivo grafico. In upstart, hai anche altri eventi che puoi usare come montaggio, montaggio e richiesta della tastiera. Questi sono gestiti con systemd tramite socket e dbus.

Come si migrano gli script??

Hai tutti gli script Upstart in /etc/init, i loro nomi sono nomi di lavoro con un'estensione 'conf'. Gli script non sono eseguibili, puntano solo a uno o più eseguibili che dovrebbero essere eseguiti. In qualsiasi script Upstart, hai definito su quale evento lo script dovrebbe iniziare e quando dovrebbe fermarsi. Dovresti anche avere voci pre-start e post-stop. Questi prepareranno l'ambiente e ripuliranno dopo l'esecuzione. Di seguito è riportato uno script di esempio

descrizione "Una semplice sceneggiatura"
avvia su runlevel [2345]
ferma su runlevel [06]
rigenerarsi
env SCRIPT_ENV_VAR='/percorso/del/file.configurazione'
chdir /percorso/a/script/
script bash exec.sh

L'istruzione "exec" dice cosa accadrà quando lo avvierai manualmente. Le direttive start e stop definiscono quando lo script verrà avviato automaticamente. Come puoi vedere, puoi anche impostare la directory in cui verrà eseguito. Ci sono molti altri aspetti di Upstart ma dovresti imparare come migrare fuori.

Affinché questo script funzioni in systemd, è necessario creare un file di servizio.

Unità]
Description=Un semplice script
[Servizio]
Ambiente= SCRIPT_ENV_VAR =/percorso/a/file.config
WorkingDirectory=/percorso/di/script
ExecStart=/usr/bin/bash script.sh
Riavvia=sempre
[Installare]
WantedBy=multiutente.bersaglio

Qui puoi vedere che accadono le stesse cose ma con altre parole chiave. Il formato è semplice e al punto. Invece di avere runlevel, indichi quale target vuole il tuo script. Ciò evidenzia che systemd riguarda la dipendenza e l'avvio di cose per l'ambiente specifico. Nota anche che ExecStart punta a un percorso globale, non usa mai un percorso locale.

Dove eccelle??

Upstart è stato progettato per un comportamento parallelo ma è stato anche progettato per essere piccolo. Se lo trovi ancora da qualche parte, sarà nei sistemi incorporati e ChromeOS. Sì, ChromeOS ce l'aveva. Il motivo è che è stato costruito su Ubuntu dall'inizio, nel momento in cui Ubuntu aveva upstart come sistema iniziale predefinito. Da allora ChromeOS è passato all'utilizzo di Gentoo come base.

Conclusione

Upstart è un argomento interessante ma soprattutto storico. Potresti averne bisogno solo se ti imbatti in vecchi sistemi. L'alternativa più comune su Linux è ora systemd. Se hai delle riserve su systemd, dovresti cercare altri sistemi minimi minimal. Uno interessante è il suckless, sinit. Supporta tre segnali e devi scrivere tu stesso tutti gli script o modificare gli script da qualcun altro. Questo può essere un esercizio interessante ma è utile solo se stai lavorando su un sistema molto minimale e specializzato.

I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...
Le migliori distribuzioni Linux per il gioco nel 2021
Il sistema operativo Linux ha fatto molta strada dal suo aspetto originale, semplice e basato su server. Questo sistema operativo è notevolmente migli...
Come acquisire e riprodurre in streaming la tua sessione di gioco su Linux
In passato, giocare era considerato solo un hobby, ma con il tempo l'industria dei giochi ha visto una crescita enorme in termini di tecnologia e nume...