bootloader

Oppstart - Hvordan er det bedre eller verre enn de andre?

Oppstart - Hvordan er det bedre eller verre enn de andre?
Da Upstart først ble unnfanget av Canonical, var det rådende systemet fortsatt sysvinit, som startet alt i rekkefølge og stoppet mer eller mindre etter det. Det sørget for at systemet også lukket elegant. Dette gjorde det nødvendig å ha andre løsninger for varmekoblingsenheter som USB-pinner og lignende. Hovedideen fra designerne var å gjøre den begivenhetsdrevet, dette gjorde det enkelt å håndtere de nevnte hot-plugging hendelsene. Upstart kan også kjøre umodifiserte sysvinit-skript, slik at du kan migrere til Upstart med bare en installasjon. Dette prosjektet er bare i vedlikeholdsmodus, så bruk dette innlegget som et interessant stykke. Du kan kjøre inn i dette systemet i gamle oppdaterte systemer.

Hvordan skiller Upstart seg ut?

Upstart har en modell for å starte en ledig jobb når hendelsen skjer. Sammenlign dette med systemd, som starter prosesser som har alle de andre systemene i gang. Hovedforskjellen er at Upstart venter på hendelser og systemd koordinerer avhengigheter. Begge systemene kan kjøre vanlige skript, og begge prøver å starte parallelt. Fordi forskjellene er så små, kan Upstart-skript vanligvis bare kalles med en systemd-servicefil. De kan også begge kjøre uendrede systemV-filer. Faktisk ser begge etter en gammel systemV-filstruktur som standard. Den store forskjellen er at Upstart ser etter definerte hendelser for å starte noe. Så hvis du vil legge til din egen tjeneste, må du finne ut i hvilken sammenheng du trenger tjenesten din. Vanligvis er dette enkelt siden du vil ha noe som for eksempel kjører på skrivebordet. Skrivebordet starter med event runlevel 5, så du angir det i skriptet. For systemd, derimot, er dette det grafiske målet. I oppstart har du også andre hendelser du kan bruke, for eksempel montering, montert og tastaturforespørsel. Disse håndteres med systemd gjennom stikkontakter og dbus.

Hvordan migrerer du skript?

Du har alle Upstart-skript i / etc / init, navnene deres er jobbnavn med en 'conf' -utvidelse. Skriptene kan ikke kjøres, de peker bare på en eller flere kjørbare filer som skal kjøres. I alle Upstart-skript har du definert hvilken hendelse skriptet skal starte og når det skal stoppe. Du bør også ha oppføringer før start og etter stopp. Disse vil forberede miljøet og rydde opp etter utførelse. Et eksempel på skript er nedenfor

beskrivelse "Et enkelt skript"
start på runlevel [2345]
stopp på bane [06]
respawn
env SCRIPT_ENV_VAR = '/ sti / til / fil.konfigurere '
chdir / bane / til / skript /
exec bash-skript.sh

'Exec' uttalelsen sier hva som vil skje når du starter den manuelt. Start- og stoppdirektivene definerer når skriptet starter automatisk. Som du kan se, kan du også angi katalogen den skal kjøre i. Det er mange flere aspekter ved Upstart, men du bør lære å migrere ut.

For at dette skriptet skal fungere i systemd, må du opprette en tjenestefil.

Enhet]
Beskrivelse = Et enkelt skript
[Service]
Miljø = SCRIPT_ENV_VAR = / sti / til / fil.config
WorkingDirectory = / sti / til / skript
ExecStart = / usr / bin / bash script.sh
Start på nytt = alltid
[Installere]
WantedBy = flerbruker.mål

Her kan du se at de samme tingene skjer, men med andre nøkkelord. Formatet er enkelt og til poenget. I stedet for å ha runlevels, peker du på hvilket mål som vil ha skriptet ditt. Dette fremhever at systemd handler om avhengighet og starter ting for det spesifikke miljøet. Legg også merke til at ExecStart peker på en global bane, den bruker aldri en lokal bane.

Hvor utmerker det seg?

Upstart ble designet for parallell oppførsel, men den var også designet for å være liten. Hvis du finner dette hvor som helst, vil det være i innebygde systemer og ChromeOS. Ja, ChromeOS hadde det. Årsaken er at den ble bygget på toppen hvis Ubuntu fra begynnelsen, da Ubuntu hadde oppstart som standard innledende system. ChromeOS har siden gått over til å bruke Gentoo som base.

Konklusjon

Oppstart er et interessant tema, men hovedsakelig historisk. Du trenger det kanskje bare hvis du støter på gamle systemer. Det vanligste alternativet på Linux er nå systemd. Hvis du har reservasjoner angående systemd, bør du se etter andre minimale systemer. En interessant er den suksessløse, sinit. Den støtter tre signaler, og du må skrive alle skriptene for det selv, eller endre skriptene fra noen andre. Dette kan være en interessant øvelse, men er bare nyttig hvis du jobber med et veldig minimalt og spesialisert system.

Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...