Як виправити помилку «Systemctl Command Not Found» у Linux

Швидке рішення для вирішення проблеми з командою «systemctl» та введення деяких ефективних альтернатив до неї

systemctl будучи важливою утилітою в екосистемі Linux, дуже часто ви можете зіткнутися з помилкою «systemctl: command not found» під час спроби запустити systemctl команда. Це може бути не для всіх дистрибутивів Linux, але ви, ймовірно, можете зіткнутися з цією помилкою, коли використовуєте старішу версію дистрибутива Linux, яка не підтримує systemctl команда.

Проблема, яка виникає у вас, є дуже поширеною проблемою, яку можна легко виправити. Тому не хвилюйтеся, а просто перегляньте повний посібник, щоб знайти швидке та просте рішення.

Ми спробуємо спочатку зрозуміти проблему, а потім її виправити.

Уявлення про systemctl і systemd

Оскільки помилка з посиланням на systemctl команді, було б добре знати основи цієї команди, щоб краще зрозуміти виправлення цієї помилки.

systemctl — це утиліта командного рядка, яку пропонує Linux, яка використовується для моніторингу та керування однією іншою утилітою командного рядка під назвою «systemd‘. Він також перевіряє та контролює диспетчер системи разом із «systemd‘корисність.

Загальний синтаксис:

systemctl [опція] [ім'я]

systemd — це набір демонів, бібліотек та утиліт, який керує програмами, які запускаються під час завантаження системи. systemd також вдається розпочати важливу роботу, як-от запуск журналу системної діяльності.

Ця утиліта функціонує як центральна утиліта керування для більшості, якщо не для всіх операційних систем на базі Linux.

Основна причина помилки

Найімовірнішою причиною цієї помилки може бути те, що ви використовуєте старішу версію дистрибутива Linux. Багато старих версій використовують SysV init замість systemd корисність.

systemd утиліта відсутня в попередніх версіях Linux, оскільки вона є нещодавнім доповненням до кошика утиліт, наданих Linux. systemctl сумісний з функцією та монітором systemd утиліта і не працюватиме з попередніми конфігураціями, наприклад SysVу цьому або Вискочка.

Якщо ви не використовуєте systemd, то ця помилка очікувана. Це так просто і зрозуміло.

Ви можете зіткнутися з цією помилкою наступним чином.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] пароль для gaurav: sudo: systemctl: команда не знайдена gaurav@ubuntu:~$ 

Тут ми спробували запустити Fire Wall Ubuntu (ufw) за допомогою systemctl команду і зіткнувся з помилкою «systemctl: команда не знайдена».

Отже, що робити зараз, якщо ви не хочете змінювати свій поточний дистрибутив Linux, який використовує іншу утиліту центрального керування, крім systemd? Що ж, у нас є швидке рішення для вас, яке дозволить вам зберегти поточний дистрибутив Linux, а також виправити вашу помилку в найкоротші терміни.

Давайте поспостерігаємо за виправленням зараз.

Виправлення помилки «systemctl: команда не знайдена».

Нарешті, давайте розглянемо розв’язання проблеми після аналізу причин і основних фактів про проблему.

Виправлення 1: Заміна systemctl з обслуговування команда

Простим виправленням цієї помилки є використання обслуговування команду замість помилки systemctl команда.

обслуговування команда допомагає запустити SystemV init скрипт, який використовується в старих дистрибутивах Linux. Якщо ви не бажаєте встановлювати systemd утиліти у вашій системі, це виправлення напевно підійде для вас.

Ви можете запускати, перезапускати або зупиняти будь-які служби та демони у своєму дистрибутиві Linux за допомогою обслуговування команда.

The обслуговування команда та systemctl команда функціонує так само, єдина відмінність тут полягає в сумісності команди з утилітами, які відповідають за плавну роботу вашої системи.

Давайте подивимося на обслуговування команда з ілюстрацією.

Загальний синтаксис:

служба sudo [назва_сервісу] [дія]

У наведеному вище синтаксисі, the [дія] простір може включати такі дії, як почати, Стоп, перезапустити або статус.

Ми виконаємо ту ж команду, щоб запустити ufw послугу за допомогою обслуговування команда.

sudo service ufw start

Вихід:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service status ufw ● ufw.service – нескладний брандмауер Завантажено: завантажено (/lib/systemd/system/ufw.service; увімкнено; попередньо налаштований постачальник: enab Активний: активний (вийшов) з понеділка 28.09.2020 11:22:34 IST; 1 год 5 хв тому Документи: man:ufw(8) Процес: 333 ExecStart=/lib/ufw/ufw-init запуск тихо (код=вийшов, статус =0/SU Основний PID: 333 (код=вийшов, статус=0/УСПІХ) 28 вересня 11:22:34 ubuntu systemd[1]: запущено Нескладний брандмауер. Попередження: журнал обертався з моменту запуску пристрою. Вихід журналу: неповний

Ось, обслуговування замість команди використовується команда systemctl команда, і все вийшло абсолютно нормально.

Розглянемо ще один приклад обслуговування команду, щоб отримати належне розуміння цього.

Запуск служби sudo apache2

Вихід:

gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - HTTP-сервер Apache завантажено: завантажено (/lib/systemd/system/apache2.service; увімкнено; попередні налаштування постачальника: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Активний: активний (виконується) з понеділка 2020-09-28 11:22:47 IST; 1 год 16 хвилин тому Процес: 1172 ExecStart=/usr/sbin/apachectl start (code= вийшов, статус=0/SUCCE Основний PID: 1248 (apache2) Завдання: 55 (ліміт: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├─1249 /usr/ sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start 28 вересня 11:22:43 ubuntu systemd[1]: запуск HTTP-сервера Apache... 28 вересня 11:22:47 ubuntu apachectl[1172 ]: AH00112: Попередження: DocumentRoot [/var/www 28 вересня 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Не вдалося надійно визначити 28 вересня 11:22:47 ubuntu запустило HTTP Systemd [1]: Сервер. gaurav@ubuntu:~$ 

Ми використали обслуговування команду для запуску утиліти apache2. Використання статус варіант з обслуговування команда відобразить поточний статус служби. Ми отримаємо деталі, чи працює він, чи мертвий (неактивний).

Давайте тепер скористаємося Стоп дію, щоб зупинити службу apache2 за допомогою обслуговування команда.

gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 рядки стану 1--1...пропуск... ● apache2.service - HTTP-сервер Apache завантажено: завантажено (/lib/systemd/ system/apache2.service; увімкнено; попередні налаштування постачальника: увімкнено) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Активний: неактивний (мертвий) з понеділка 28.09.2020 12 :42:06 IST; 1с тому Процес: 4928 ExecStop=/usr/sbin/apachectl зупинка (код=вийшов, статус=0/УСПІХ) Процес: 1172 ExecStart=/usr/sbin/apachectl запуск (код=вийшов, статус=0/УСПІХ) Основний PID : 1248 (код=вийшов, статус=0/УСПІХ) 28 вересня 11:22:43 ubuntu systemd[1]: запуск HTTP-сервера Apache... 28 вересня 11:22:47 ubuntu apachectl[1172]: AH00112: попередження : DocumentRoot [/var/www/html] не існує 28 вересня 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Не вдалося достовірно визначити повне доменне ім’я сервера, використовуючи ::1. Встановіть 28 вересня 11:22:47 ubuntu systemd[1]: запущено HTTP-сервер Apache.

З докладних прикладів, описаних вище, ми можемо зробити висновок, що ми можемо використовувати цю команду замість команди systemctl команда для керування та моніторингу інших демонів і служб у дистрибутиві Linux.

Виправлення 2: Перевірка systemd пакет

Іноді може статися так, що тільки systemd встановлення пакета може вирішити проблему. Спочатку вам потрібно перевірити стан встановлення systemd пакет у вашій системі.

Використовуйте наступну команду, щоб перевірити пакет у вашій системі.

sudo dpkg -l | grep systemd

Якщо systemd утиліта вже встановлена, ви отримаєте результат, подібний до показаного нижче.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] пароль для gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 проста система обміну повідомленнями між процесами (systemd --user integration) ii libnss-systemd:amd64 237-3ubuntu10.42 модуль amd64 dynamic nss розділення імен користувачів і груп ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 менеджер системи та служб - модуль PAM ii libsystemd0:amd64 237-3ubuntu10.42 amd64 бібліотека утиліт systemd ii libsystemd0:i386 systemd0:i386 systemd library i138 ii networkd-dispatcher 1.7-0ubuntu3.3 всі служби диспетчера для зміни статусу підключення systemd-networkd ri python3-systemd 234-1build1 amd64 прив'язки Python 3 для systemd ii systemd 237-3ubuntu10.42 amd64 systemd-7 manager iv 3ubuntu10.42 amd64 менеджер системи та служб - посилання SysV gaurav@ubuntu:~$ 

Якщо ви отримуєте результат, подібний до цього, це означає, що systemd встановлено у вашій системі.

Якщо він не встановлений, ви можете встановити його наступним чином.

sudo apt-отримати оновлення
sudo apt-get install systemd

Якщо його встановлено, але помилка все ще не зникає, спробуйте переінсталювати його за допомогою наступної команди.

sudo apt-get install --reinstall systemd

Це вирішить вашу проблему шляхом встановлення systemd корисність.

Висновок

У цьому підручнику ми навчилися виправляти «команду systemctl: не знайдено». Ми можемо з упевненістю зробити висновок, що використовуючи обслуговування команда замість systemctl це хороша ідея і дуже добре вирішує проблему. Ми можемо легко використовувати обслуговування після розуміння ілюстративних прикладів, показаних у підручнику.

Категорія: Linux