bootloader

Uppstart - Hur är det bättre eller sämre än de andra?

Uppstart - Hur är det bättre eller sämre än de andra?
När Upstart först utformades av Canonical var det rådande systemet fortfarande sysvinit, som startade allt i ordning och mer eller mindre stoppade efter det. Det såg till att systemet också stängdes graciöst. Detta gjorde det nödvändigt att ha andra lösningar för hot-plugging-enheter som USB-minnen och liknande. Huvudidén från formgivarna var att göra den händelsestyrd, detta gjorde det enkelt att hantera de nämnda hot-plugging-händelserna. Upstart kan också köra omodifierade sysvinit-skript, så du kan bara migrera till Upstart med en installation. Detta projekt är bara i underhållsläge så använd det här inlägget som en intressant bit. Du kan stöta på det här systemet i gamla uppdaterade system.

Hur skiljer sig Upstart från?

Upstart har en modell för att starta ett tillgängligt jobb när händelsen inträffar. Jämför detta med systemd, som startar processer där alla andra system körs. Huvudskillnaden är att Upstart väntar på händelser och systemd samordnar beroenden. Båda systemen kan köra vanliga skript och båda försöker starta parallellt. Eftersom skillnaderna är så små kan Upstart-skript vanligtvis bara anropas med en systemd-servicefil. De kan också båda köra oförändrade systemV-filer. Faktum är att båda letar efter en gammal systemV-filstruktur som standard. Den stora skillnaden är att Upstart letar efter definierade händelser för att starta vad som helst. Så om du vill lägga till din egen tjänst måste du ta reda på i vilket sammanhang du behöver din tjänst. Vanligtvis är detta enkelt eftersom du vill ha något som körs till exempel på skrivbordet. Skrivbordet börjar med event runlevel 5, så du ställer in det i ditt skript. För systemd är det däremot det grafiska målet. I upstart har du också andra händelser som du kan använda, till exempel montering, monterad och tangentbordsförfrågan. Dessa hanteras med systemd via uttag och dbus.

Hur migrerar du skript?

Du har alla Upstart-skript i / etc / init, deras namn är jobbnamn med ett "conf" -tillägg. Skripten är inte körbara, de pekar bara på en eller flera körbara filer som ska köras. I alla Upstart-skript har du definierat vilken händelse skriptet ska starta och när det ska sluta. Du bör också ha pre-start och post-stop poster. Dessa kommer att förbereda miljön och städa upp efter utförandet. Ett exempel på skript finns nedan

beskrivning "Ett enkelt skript"
börja på körnivå [2345]
stanna på körnivå [06]
respawn
env SCRIPT_ENV_VAR = '/ sökväg / till / fil.konfigurera '
chdir / sökväg / till / skript /
exec bash-skript.sh

Uttrycket 'exec' säger vad som kommer att hända när du startar det manuellt. Start- och stoppdirektiven definierar när skriptet startar automatiskt. Som du kan se kan du också ställa in katalogen som den ska köras i. Det finns många fler aspekter på Upstart men du bör lära dig att migrera ut.

För att detta skript ska fungera i systemd måste du skapa en servicefil.

Enhet]
Beskrivning = Ett enkelt skript
[Service]
Miljö = SCRIPT_ENV_VAR = / sökväg / till / fil.konfigurera
WorkingDirectory = / sökväg / till / skript
ExecStart = / usr / bin / bash-skript.sh
Starta om = alltid
[Installera]
WantedBy = fleranvändare.mål

Här kan du se att samma saker händer men med andra nyckelord. Formatet är enkelt och till sak. Istället för att ha körnivåer pekar du på vilket mål som vill ha ditt skript. Detta belyser att systemd handlar om beroende och starta saker för den specifika miljön. Observera också att ExecStart pekar på en global sökväg, den använder aldrig en lokal sökväg.

Var utmärker det sig?

Upstart designades för parallellt beteende men det var också utformat för att vara litet. Om du hittar det här någonstans fortfarande kommer det att finnas i inbäddade system och ChromeOS. Ja, ChromeOS hade det. Anledningen är att den byggdes ovanpå om Ubuntu från början, vid den tidpunkt då Ubuntu hade uppstart som standardinitialsystem. ChromeOS har sedan gått vidare till att använda Gentoo som bas.

Slutsats

Upstart är ett intressant ämne men huvudsakligen historiskt. Du kanske bara behöver det om du stöter på gamla system. Det vanligaste alternativet på Linux är nu systemd. Om du har reservationer angående systemd bör du leta efter andra minimala system. En intressant är den suglösa, sinit. Den stöder tre signaler och du måste skriva alla skript för det själv eller ändra skript från någon annan. Detta kan vara en intressant övning men är bara användbar om du arbetar med ett mycket minimalt och specialiserat system.

Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...
Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...