如何修复 Linux 中的“Systemctl Command Not Found”错误

使用“systemctl”命令快速解决问题并引入一些有效的替代方法

系统控制 作为 Linux 生态系统中的一个重要实用程序,当您尝试运行 系统控制 命令。这可能不是所有 Linux 发行版的情况,但是当您使用不支持的旧版 Linux 发行版时,您可能会遇到此错误 系统控制 命令。

您遇到的问题是一个非常常见的问题,可以轻松解决。所以,完全不用担心,只需阅读完整的教程即可找到快速简便的修复方法。

我们将尝试先了解问题,然后再解决问题。

洞察力 系统控制系统

由于错误是参考 系统控制 命令,了解此命令的基础知识以更好地了解此错误的修复程序会很好。

系统控制 是 Linux 提供的一种命令行实用程序,用于监视和控制另一个名为“系统'.它还检查和控制系统管理器以及“系统' 公用事业。

一般语法:

systemctl [选项] [名称]

系统 是一组守护进程、库和实用程序,用于控制系统启动时运行的程序。 系统 还设法启动一项重要工作,例如启动系统活动日志。

此实用程序用作大多数(如果不是全部)基于 Linux 的操作系统的中央管理实用程序。

错误的根本原因

此错误的最可能原因可能是您使用的是较旧版本的 Linux 发行版。许多旧版本使用 系统初始化 而不是 系统 公用事业。

系统 以前的 Linux 版本中没有实用程序,因为它是 Linux 提供的实用程序篮子中的最新成员。 系统控制 与功能和监控兼容 系统 实用程序,将无法使用以前的配置,如 系统V在里面 或者 暴发户.

如果您不使用 系统,那么这个错误是意料之中的。就这么简单明了。

您可能会通过以下方式遇到此错误。

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] gaurav 密码: sudo: systemctl: 命令未找到 gaurav@ubuntu:~$ 

在这里,我们尝试启动 Ubuntu 防火墙(飞翔) 使用 系统控制 命令并遇到“systemctl: command not found”错误。

那么,如果您不希望更改当前使用其他中央管理实用程序的 Linux 发行版而不是 系统?好吧,我们确实为您提供了一个快速修复程序,它可以让您保留当前的 ​​Linux 发行版并立即修复您的错误。

现在让我们观察修复。

修复“systemctl: command not found”错误

最后,在分析问题的原因和基本事实之后,让我们现在看看问题的解决方案。

修复 1:更换 系统控制服务 命令

有问题的错误的一个简单修复是使用 服务 命令而不是导致的错误 系统控制 命令。

服务 命令有助于运行 系统初始化 旧版 Linux 发行版使用的脚本。如果您不想安装 系统 实用程序,此修复程序肯定对您有用。

您可以使用 服务 命令。

服务 命令和 系统控制 命令功能相同,唯一的区别是命令与负责系统正常运行的实用程序的兼容性。

让我们看看 服务 带插图的命令。

一般语法:

须藤服务 [service_name] [动作]

在上面的语法中, [行动] 空间可能包括诸如 开始, 停止, 重新开始 或者 地位.

我们将运行相同的命令来启动 飞翔 服务使用 服务 命令。

须藤服务 ufw 开始

输出:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - 简单的防火墙加载:加载(/lib/systemd/system/ufw.service;启用;供应商预设:启用活动:自 2020 年 9 月 28 日星期一 11:22:34 IST 起处于活动状态(退出);1 小时 5 分钟前 文档:man:ufw(8) 进程:333 ExecStart=/lib/ufw/ufw-init start quiet(代码=退出,状态=0/SU Main PID: 333 (code=exited, status=0/SUCCESS) Sep 28 11:22:34 ubuntu systemd[1]: Started Uncomplicated firewall. Warning: Journal has been rotation since unit is started. Log output is不完整

在这里, 服务 使用命令而不是 系统控制 命令,结果非常好。

让我们再看一个例子 服务 命令以正确理解它。

须藤服务 apache2 启动

输出:

gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Apache HTTP Server 加载:已加载(/lib/systemd/system/apache2.service;已启用;供应商预设:Drop-In:/lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Active: active (running) from Mon 2020-09-28 11:22:47 IST; 1h 16min ago Process: 1172 ExecStart=/usr/sbin/apachectl start (code= exited, status=0/SUCCE Main PID: 1248 (apache2) Tasks: 55 (limit: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├─1249 /usr/ sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start Sep 28 11:22:43 ubuntu systemd[1]:启动 Apache HTTP 服务器... Sep 28 11:22:47 ubuntu apachectl[1172 ]: AH00112: 警告: DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: 无法可靠地检测 Sep 28 11:22:47 ubuntu systemd[1]: 启动 Apache HTTP服务器。gaurav@ubuntu:~$ 

我们使用了 服务 命令启动 apache2 实用程序。使用 地位 选项与 服务 命令将显示服务的当前状态。我们将获得它是正在运行还是已死(不活动)的详细信息。

现在让我们使用 停止 停止使用 apache2 服务的操作 服务 命令。

gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 status lines 1--1...skiping... ● apache2.service - Apache HTTP 服务器已加载:已加载 (/lib/systemd/ system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: 从 Mon 2020-09-28 12 起不活动 (dead) :42:06 IST; 1s前进程:4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID : 1248 (code=exited, status=0/SUCCESS) Sep 28 11:22:43 ubuntu systemd[1]: 启动 Apache HTTP Server... Sep 28 11:22:47 ubuntu apachectl[1172]: AH00112: 警告: DocumentRoot [/var/www/html] 不存在 Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: 无法可靠地确定服务器的完全限定域名,使用 ::1。设置 'S Sep 28 11:22:47 ubuntu systemd[1]: Started The Apache HTTP Server。

从上面解释的详细示例中,我们可以得出结论,我们可以使用此命令代替 系统控制 命令来控制和监视 Linux 发行版下的其他守护程序和服务。

修复 2:检查 系统 包裹

有时可能只有 系统 包安装可能会解决问题。首先,您需要检查安装状态 系统 在您的系统上打包。

使用以下命令检查系统上的包。

须藤 dpkg -l | grep systemd

如果 系统 utilty 已安装,您将获得类似如下所示的输出。

gaurav@ubuntu:~$ sudo dpkg -l | gaurav 的 grep systemd [sudo] 密码:ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 简单的进程间消息系统(systemd --user 集成)ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 nss 模块提供动态用户和组名解析 ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 系统和服务管理器 - PAM 模块 ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd 实用程序库 ii libsystemd0:i386 237-3ubuntu1086237-3ubuntu 实用程序库 i ii networkd-dispatcher 1.7-0ubuntu3.3 用于 systemd-networkd 连接状态更改的所有 Dispatcher 服务 ri python3-systemd 234-1build1 amd64 systemd 的 Python 3 绑定 ii systemd 237-3ubuntu10.42 amd64 系统和服务管理器 ii systemd-sysv 23 3ubuntu10.42 amd64 系统和服务管理器 - SysV 链接 gaurav@ubuntu:~$ 

如果您得到与此类似的输出,则意味着 系统 安装在您的系统上。

如果没有安装,可以通过以下方式安装。

sudo apt-get 更新
sudo apt-get 安装 systemd

如果已安装但错误仍然存​​在,请尝试使用以下命令重新安装它。

sudo apt-get install --reinstall systemd

这将通过安装来解决您的问题 系统 公用事业。

结论

我们在本教程中学会了修复“systemctl: command not found”。我们可以安全地得出结论,使用 服务 命令而不是 系统控制 是个好主意,可以很好地解决问题。我们可以很容易地使用 服务 命令在理解教程中显示的说明性示例后。