50% rabat alle planer, begrænset tid. Start kl $2.48/mo
7 min tilbage
Servere & OS

Sådan rettes systemctl: Kommando ikke fundet fejl på Ubuntu

Nick Silver By Nick Silver 7 min læst Opdateret 20. februar 2025
hvordan rettes systemctl: kommando ikke fundet

Et af de mest kraftfulde og praktiske værktøjer til Linux-brugere, især moderne distros som Ubuntu, er systemctl kommando. Dette kommandolinjeværktøj bruges typisk til at interagere med systemd, systemet og servicemanageren.

Gennem kommandoen kan du administrere systemtjenester, se deres status, starte eller stoppe dem og aktivere og deaktivere dem ved systemstart. Ret praktisk, ikke? Men hvis systemctl-kommandoen ikke findes eller genkendes, vil du stå over for "sudo:systemctl: kommando ikke fundet" fejl.

Så lad os tale om, hvad fejlen "systemctl: kommando ikke fundet" betyder, de forskellige årsager til, at du står over for denne fejl, og hvordan du løser denne fejl.

Hvad betyder systemctl: Command Not Found?

Kort sagt betyder fejlen "systemctl: kommando ikke fundet", at systemctl-kommandolinjeværktøjet ikke er tilgængeligt eller tilgængeligt i det aktuelle miljø. Dette kan skyldes en lang række årsager, som alle kommer tilbage til enten at miljøet er et ikke-systemmiljø eller at systemd-pakken ikke er installeret på systemet.

Grundlæggende er systemd-pakken ikke installeret, eller din Linux-distro eller version bruger ikke systemd; snarere bruger den ældre servicestyringssystemer som init.d. En anden mulighed er, at PATH-miljøvariablen ikke inkluderer den mappe, hvor systemctl er placeret, hvilket betyder, at din shell ikke kan finde den.

Nu hvor du har en idé om, hvad der kan være galt med dit system, hvilket fører til fejlen "systemctl: kommando ikke fundet", lad os se på, hvordan du kan verificere, hvor dit problem ligger, og hvordan du løser det.

Ret systemctl: Kommando ikke fundet fejl

I de følgende trin skal vi verificere, om dit system er installeret og bruger systemctl eller ej, samt kontrollere systemctls sti. Når vi har bekræftet problemet, vil vi tage de nødvendige skridt for at rette fejlen.

1. Bekræftelse af, om dit system bruger systemd

Da Ubuntu systemctl kun kan bruges, hvis du har systemd-pakken installeret, vil 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 Ubuntu systemctl installeret. Men hvis outputtet er init eller en anden procesmanager, betyder det, at dit system bruger et alternativt initialiseringssystem, og systemctl vil ikke fungere, medmindre du migrerer til systemd.

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

1. Installer systemctl ved at installere systemd ved hjælp af følgende kommando:

sudo apt install systemd-sysv

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

sudo reboot

3. Tjek, at dit system nu bruger systemd:

ps -p 1 -o comm=

Outputtet skulle være systemd nu.

2. Sørg for, at systemd er installeret korrekt

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

Bemærk, at hvis du bruger en minimal version af Ubuntu, såsom en Docker-container eller cloud-instans, så 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 den er installeret, skal du kontrollere, om systemctl-kommandoen er tilgængelig.

3. Kontrol af systemctl's PATH

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

which systemctl

Hvis systemctl findes i nogen af ​​dine mapper, der er opført i PATH, bør du få et output som dette:

/usr/bin/systemctl

Hvis systemctl ikke findes i nogen af ​​mapperne i PATH, returnerer hvilken kommando intet.

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

echo $PATH

Outputtet skal være noget som dette:

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

Nu skal du bare kontrollere, om den mappe, som systemctl ligger i (som du fik fra hvilken kommando), er inkluderet i mapperne, der er angivet i outputtet fra echo $PATH-kommandoen.

Hvis systemctls bibliotek ikke er inkluderet i echo $PATHs output, bliver du nødt til at tilføje det til din PATH-variabel. For at gøre dette skal du køre følgende kommando:

For Bash shell brugere, skal du åbne filen ~/.bashrc i en teksteditor:

nano ~/.bashrc

Tilføj følgende linje i slutningen af ​​filen:

export PATH=$PATH:/usr/bin

/usr/bin er en typisk mappe, hvor systemctl er placeret i dette eksempel.

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

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

nano ~/.zshrc

Tilføj følgende linje i slutningen af ​​filen:

export PATH=$PATH:/usr/bin

/usr/bin er en typisk mappe, hvor systemctl er placeret i dette eksempel.

Gem og luk nu 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 burde du være i stand til at køre systemctl uden at løbe ind i fejlen "systemctl: kommando ikke fundet".

4. Geninstallation af systemd

Hvis de tidligere rettelser ikke virker, og du stadig står over for fejlen kommando ikke fundet, kan 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

Tjek om systemctl virker.

5. Bekræftelse af, at systemd er konfigureret korrekt

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

sudo dpkg-reconfigure systemd

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

På den off chance, du bruger Ubuntu under WSL (Windows Subsystem til Linux) du skal vide, at de ældre versioner af WSL, såsom WSL 1, ikke naturligt understøtter systemctl, så uanset hvilken af ​​de tidligere rettelser du bruger, vil du ikke være i stand til at køre systemctl.

Hvis du vil drage fordel af systemctls funktioner, skal du opgradere til WSL 2, som har bedre understøttelse af systemd. Hvis du er usikker på, om du bruger WSL eller ej, kan du tjekke ved at bruge følgende kommando:

uname -a

Hvis outputtet nævner WSL, så er det derfor, du ser fejlen "systemctl: kommando ikke fundet".

7. Brug af sudo Service som et alternativ til systemctl

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

For at starte en tjeneste, skal du for eksempel 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 måske ikke er alles kop init system te på grund af dets monolitiske design og ikke-Unix filosofi, betragtes systemd stadig generelt som det fremherskende valg. Så forhåbentlig har du været i stand til at løse din systemctl-kommando ikke tilgængelig-fejl, da det at ikke kunne bruge systemds kommandolinjeværktøj i høj grad begrænser dets muligheder.

FAQ

Hvad er systemctl, og hvad betyder systemctl: Command Not Found?

systemctl er et kommandolinjeværktøj, der bruges til at administrere tjenester i 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 tilgængeligt, normalt fordi systemet ikke bruger systemd, eller systemd-pakken ikke er installeret.

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

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

Dele

Mere fra bloggen

Fortsæt med at læse.

Bedste selv-hostede apps, du kan køre med Cosmos Cloud-forsidebillede med app-paneler omkring et Cosmos-dashboard.
Servere & OS

Bedste selv-hostede apps, du kan køre med Cosmos Cloud: Filer, medier, adgangskoder, automatisering og mere!

Måske har du konfigureret Cosmos Cloud og vil nu se, hvilke apps der passer godt til den, eller måske har du ikke engang besluttet dig for Cosmos endnu og vil bare se, hvor godt den passer til dit arbejde.

Nick SilverNick Silver 16 min læst
Portainer vs Cosmos Cloud til styring af Docker Apps-cover med hybrid opsætningsdiagram og neon ops vs adgangsblokke.
Servere & OS

Portainer vs Cosmos Cloud: Bedst egnet til Docker App Management

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

Nick SilverNick Silver 14 min læst
Cosmos Cloud vs CasaOS vs Umbrel funktionsgrafik, der viser tre selv-hostede stier inde i en abstrakt cloud-netværksverden.
Servere & 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 nemmeste sted at begynde, Umbrel har den reneste kurerede følelse, og Cosmos Cloud giver mere mening, når du vil have strammere kontrol over domaet

Nick SilverNick Silver 11 min læst

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

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