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

Sådan fikser du systemctl: Command Not Found-fejl på Ubuntu

Nick Silver By Nick Silver 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 tjekke 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 en typisk mappe, hvor systemctl er placeret i dette eksempel.

Gem og luk filen ved at trykke 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 en typisk mappe, hvor systemctl er placeret i dette eksempel.

Gem og luk filen ved at trykke 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: command not found?

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.

Forsidebillede til Bedste self-hosted apps med Cosmos Cloud, med app-paneler omkring et Cosmos-dashboard.
Servere og OS

Bedste self-hosted apps, du kan køre med Cosmos Cloud: filer, medier, kodeord, automation og mere!

Måske har du sat Cosmos Cloud op og vil nu se, hvilke apps der passer godt til den, eller måske har du slet ikke besluttet dig for Cosmos endnu og vil bare se, hvor godt den passer til dit workfl

Nick SilverNick Silver 16 min. læsning
Forsiden af Portainer vs Cosmos Cloud til håndtering af Docker-apps med hybrid opsætningsdiagram og neon ops- vs access-blokke.
Servere og OS

Portainer vs Cosmos Cloud: Bedste valg til håndtering af Docker-apps

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

Nick SilverNick Silver 14 min. læsning
Hovedgrafik for Cosmos Cloud vs CasaOS vs Umbrel, der viser tre self-hosted veje i én abstrakt cloud-netværksverden.
Servere og OS

Cosmos Cloud vs CasaOS vs Umbrel: Hvilken self-hosted platform passer til din opsætning?

Det korte svar er, at CasaOS stadig er det letteste sted at starte, Umbrel har det reneste kuraterede look, og Cosmos Cloud giver mere mening, når du vil have strammere kontrol over doma

Nick SilverNick Silver 11 min. læsning

Klar til at udrulle? Fra 2,48 $/md.

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