50% rabat alle planer, begrænset periode. Fra kun $2.48/mo
7 min tilbage
Servere og OS

Sådan Fikser Du Fejlen systemctl: Command Not Found På Ubuntu

Nick Sølv By Nick Sølv 7 min læsning Opdateret 20. feb. 2025
sådan fikser du systemctl: command not found

Et af de mest kraftfulde og praktiske værktøjer for Linux-brugere, især moderne distributioner som Ubuntu, er systemctl kommando. Dette kommandolinie-værktøj bruges typisk til at arbejde med systemd, systemet og servicehåndteringen.

Med kommandoen kan du administrere systemtjenester, se deres status, starte eller stoppe dem og aktivere eller deaktivere dem ved systemstart. Ret praktisk, ikke? Men hvis systemctl-kommandoen ikke findes eller genkendes, skal du forberedes på at møde «sudo: systemctl: command not found» fejl.

Lad os tage udgangspunkt i, hvad fejlen "systemctl: command not found" betyder, hvilke årsager der kan ligge bag fejlen, og hvordan du får den løst.

Hvad betyder fejlen 'systemctl: Command Not Found'?

I korthed betyder fejlen "systemctl: command not found" at systemctl-kommandolinjeværktøjet ikke er tilgængeligt i dit aktuelle miljø. Det skyldes typisk enten at miljøet ikke er et fuldt system, eller at systemd-pakken ikke er installeret.

Det skyldes typisk, at systemd-pakken ikke er installeret, eller at din Linux-distribution eller -version ikke bruger systemd, men i stedet benytter ældre servicestyrringssystemer som init.d. En anden mulighed er, at PATH-miljøvariablen ikke indeholder det bibliotek, hvor systemctl er placeret, så dit shell ikke kan finde det.

Nu hvor du har en idé om, hvad der kunne være galt med dit system og forårsager fejlen "systemctl: command not found", lad os se på, hvordan du kan lokalisere problemet og fixe det.

Løsning på systemctl: Command Not Found-fejlen

I de følgende trin skal vi kontrollere, om dit system har systemd installeret og bruger systemctl, samt tjekke systemctls sti. Når vi har bekræftet problemet, tager vi de nødvendige skridt til at løse fejlen.

1. Tjekker om dit system bruger systemd

Da Ubuntu systemctl kun kan bruges, hvis du har systemd-pakken installeret, skal vi først kontrollere, om dit system skal bruge systemd, ved at køre følgende kommando:

ps -p 1 -o comm=

Eller du kan kontrollere systemd-versionen med følgende kommando:

systemd --version

Hvis outputtet er systemd, så er systemd dit init-system og burde have systemctl installeret. Hvis outputtet derimod er init eller en anden procesadministrator, betyder det, at dit system bruger et alternativt initieringssystem, og systemctl fungerer ikke, medmindre du migrerer til systemd.

Hvis du ser ældre initialisyringssystemer som Upstart eller SysVinit og gerne vil skifte til systemd for at bruge systemctl, skal du følge disse trin:

1. Installer systemctl ved at installere systemd med følgende kommando:

sudo apt install systemd-sysv

2. Genstart dit system ved at køre denne kommando:

sudo reboot

3. Kontroller, at dit system nu bruger systemd:

ps -p 1 -o comm=

Output'et skal vise systemd.

2. Sikring af, at systemd er installeret korrekt

Under normale omstændigheder, når systemd er installeret og kører som dit init-system, bør systemctl-kommandoen fungere korrekt. Hvis det ikke gør, betyder det, at systemd-pakken enten mangler eller er installeret forkert.

Bemærk, at hvis du bruger en minimal version af Ubuntu, såsom en Docker-container eller cloud-instans, er systemd muligvis ikke installeret som standard. For at installere systemctl ved at installere systemd skal du køre følgende kommandoer:

sudo apt update
sudo apt install systemd

Når det er installeret, skal du kontrollere, om systemctl-kommandoen er tilgængelig.

3. Kontrol af systemctl's PATH

Et almindeligt problem med fejlen "systemctl not found" er, at systemctl kunne være installeret, men det er ikke i dit systems PATH. For at kontrollere, om systemd-binaries findes i typiske mappes, hvor det er placeret, såsom /bin, /usr/bin eller /usr/local/bin, kan du bruge følgende kommando:

which systemctl

Hvis systemctl findes i nogen af dine mapper angivet i PATH, bør du få et output som dette:

/usr/bin/systemctl

Hvis systemctl ikke findes i nogen af mapperne i PATH, returnerer which-kommandoen ingenting.

Systemctl virker dog muligvis ikke, selvom det findes i dine mapper. Det skyldes, at systemctl kunne være placeret i en mappe, der ikke er inkluderet i PATH. I denne situation skal du kontrollere, om mappen, hvor systemctl er placeret, er en del af dit system ved at bruge følgende kommando:

echo $PATH

Output'et skal være noget som dette:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Nu skal du blot kontrollere, om mappen, hvor systemctl er placeret (som du fik fra which-kommandoen), er inkluderet i mapperne, der er angivet i output'et fra echo $PATH-kommandoen.

Hvis systemctl's mappe ikke er inkluderet i echo $PATH's output, skal du tilføje den til din PATH-variabel. For at gøre dette skal du køre følgende kommando:

Til Bash shell-brugere, åbn filen ~/.bashrc i en teksteditor:

nano ~/.bashrc

Tilføj følgende linje til slutningen af filen:

export PATH=$PATH:/usr/bin

/usr/bin er et typisk sted, hvor systemctl er placeret i dette eksempel.

Gem og luk filen ved at trykke på CTRL + X, derefter Y for at bekræfte, og Enter for at gemme.

Til Zsh-brugere, Åbn filen ~/.zshrc i en teksteditor:

nano ~/.zshrc

Tilføj følgende linje til slutningen af filen:

export PATH=$PATH:/usr/bin

/usr/bin er et typisk sted, hvor systemctl er placeret i dette eksempel.

Gem og luk filen ved at trykke på CTRL + X, derefter Y for at bekræfte, og Enter for at gemme.

Når du er færdig med ovenstående trin, skal du bruge echo $PATH-kommandoen til at kontrollere, om din systemctl's mappe er blevet tilføjet til din PATH. Nu bør du kunne køre systemctl uden at støde på fejlen "systemctl: command not found".

4. Geninstallation af systemd

Hvis de tidligere rettelser ikke virker, og du stadig får fejlen "command not found", kan en fuldstændig geninstallation af systemd muligvis løse problemet. For at gøre dette skal du køre følgende kommandoer:

sudo apt purge systemd
sudo apt install systemd

Genstart derefter dit system med denne kommando:

sudo reboot

Kontroller, om systemctl fungerer.

5. Bekræft, at systemd er korrekt konfigureret

Nogle gange kan problemet være så simpelt som en forkert installeret systemd, hvilket resulterer i fejlen "systemctl: kommando ikke fundet". Alt du skal gøre for at løse det, er at køre følgende kommando, og så er du færdig:

sudo dpkg-reconfigure systemd

6. Forældet Windows-undersystem til Linux (WSL)

I det sjældne tilfælde, at du bruger Ubuntu under WSL (Windows-undersystem til Linux) bør du vide, at ældre versioner af WSL, såsom WSL 1, ikke nativt understøtter systemctl. Så uanset hvilke af de tidligere løsninger du bruger, vil du ikke kunne køre systemctl.

Hvis du vil drage fordel af systemctls funktioner, skal du opgradere til WSL 2, som har bedre understøttelse for systemd. Hvis du er usikker på, om du bruger WSL, kan du kontrollere det med følgende kommando:

uname -a

Hvis outputtet nævner WSL, er det grunden til, at du ser fejlen "systemctl: kommando ikke fundet".

7. Brug sudo service som alternativ til systemctl

Hvis du får fejlen "systemctl: kommando ikke fundet", fordi dit system ikke bruger systemd, kan du bruge kommandoen sudo service til at administrere tjenester. Denne kommando fungerer med ældre init-systemer som SysVinit eller Upstart. Dette er nyttigt til Ubuntu-systemer, der baserer sig på init-scripts i stedet for systemd.

For eksempel, for at starte en tjeneste, ville du køre:

sudo service <service_name> start

Afsluttende tanker

systemd og dets systemctl-kommandolinjeværktøj har erstattet de fleste andre ældre init-systemer som SysVinit og Upstart. Selvom systemd ikke er alles favorit på grund af dets monolitiske design og filosofi, der strider mod Unix-principperne, betragtes systemd stadig generelt som det mest udbredt valg. Forhåbentlig har du således kunnet løse dit problem med, at systemctl-kommandoen ikke er tilgængelig, da manglende adgang til systemds kommandolinjeværktøj alvorligt begrænser dets kapaciteter.

Ofte stillede spørgsmål

Hvad er systemctl, og hvad betyder "systemctl: kommando ikke fundet"?

systemctl er et kommandolinjeværktøj, der bruges til at administrere tjenester på Linux-systemer, der kører systemd, såsom Ubuntu. Fejlen "systemctl: kommando ikke fundet" opstår, når værktøjet ikke er tilgængeligt eller accessible, normalt fordi systemet ikke bruger systemd, eller systemd-pakken ikke er installeret.

Er systemctl tilgængeligt på alle versioner af Ubuntu?

Nej, systemctl er ikke tilgængeligt på alle versioner af Ubuntu. systemctl er en del af systemd init-systemet, som er standard på de fleste moderne Ubuntu-versioner (fra 15.04 og frem). Ældre versioner eller visse minimale installationer bruger muligvis alternative init-systemer som SysVinit eller Upstart i stedet.

Del

Mere fra bloggen

Læs videre.

Bedste Self-Hosted Apps, du kan køre med Cosmos Cloud cover-billede med app-paneler omkring et Cosmos-dashboard.
Servere og OS

Bedste Self-Hosted Apps, du kan køre med Cosmos Cloud: Filer, Media, Adgangskoder, Automatisering og mere!

Maybe har du sat Cosmos Cloud op og vil gerne se, hvilke apps der passer godt sammen med det, eller måske har du slet ikke besluttet dig for Cosmos endnu og vil bare se, hvor godt det passer til dit workflow

Nick SølvNick Sølv 16 min læsning
Portainer vs Cosmos Cloud til administration af Docker apps cover med hybrid setup-diagram og neon ops vs access blocks.
Servere og OS

Portainer vs Cosmos Cloud: Det bedste valg til Docker app-administration

Hvis du allerede kender Docker og bare ønsker en renere måde at køre en voksende app-stack på, her er det korte svar på Portainer vs Cosmos Cloud. Portainer er det stærkere valg for direkte

Nick SølvNick Sølv 14 min læsning
Cosmos Cloud vs CasaOS vs Umbrel feature-grafik, der viser tre self-hosted-veje inden for en abstrakt cloud-netværksverden.
Servere og OS

Cosmos Cloud vs CasaOS vs Umbrel: Hvilken Self-Hosted-platform passer til dit setup?

Det korte svar er, at CasaOS stadig er det nemmeste sted at begynde, Umbrel har det reneste kurerede udtryk, og Cosmos Cloud giver mere mening, når du ønsker tættere kontrol over doma

Nick SølvNick Sølv 11 min læsning

Klar til at implementere? Fra $2,48/mdr.

Uafhængig cloud siden 2008. AMD EPYC, NVMe, 40 Gbps. 14-dages pengene-tilbage-garanti.