无法在 Ubuntu WSL2 上启动 elasticsearch 服务

无法在 Ubuntu WSL2 上启动 elasticsearch 服务

我使用以下命令在 WSL2 上安装了 elasticsearch:sudo apt-get update && sudo apt-get install elasticsearch 我得到以下输出:

sudo apt-get update && sudo apt-get install elasticsearch
Hit:1 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease
Hit:2 https://download.docker.com/linux/ubuntu focal InRelease
Hit:3 https://artifacts.elastic.co/packages/8.x/apt stable InRelease
Hit:4 http://downloads.metasploit.com/data/releases/metasploit-framework/apt lucid InRelease
Hit:5 http://ppa.launchpad.net/swi-prolog/stable/ubuntu focal InRelease
Hit:6 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:7 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:8 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:9 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
elasticsearch is already the newest version (8.4.2).
The following packages were automatically installed and are no longer required:
  libdaq2 libdumbnet1 oinkmaster snort-common snort-common-libraries snort-rules-default
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 538 not upgraded.  

从上面的日志看来,安装没有问题。但是我在运行服务时收到以下错误,sudo service start elasticsearch我收到以下消息 start: unrecognized service ,并且对于此命令,sudo service elasticsearch start输出 也是相同的elasticsearch: unrecognized service ,这可能是什么原因造成的?

答案1

虽然我自己没有尝试过,但是大多数询问有关在 WSL 下运行 Elasticsearch 的人都是使用 Docker Desktop 来执行此操作,尽管还有其他替代方案。

正如评论中指出的那样:

  • 您的第一个命令失败,因为脚本的语法servicesudo service <service_script> command

  • 但该形式不适用于 Elasticsearch,因为它不提供服务脚本。它的软件包维护者认为,既然您在 Ubuntu 上安装它,那么您就运行了 Systemd。这引出了我们……

  • 如果不进行额外配置,WSL 不支持 Systemd。请参阅我的两个不同答案这个 Ask Ubuntu 问题了解详情。

我在那里提到的两个替代选项(当 SysVInit 脚本不可用时)是:

  • 使用 Docker

  • 或者,如果您运行的是 Windows 11,本周刚刚发布了 WSL 的预发布版本,它提供了运行 Systemd 的功能。配置说明位于我对 Ask Ubuntu 问题的第二个(当然是最近的)回答中。

请注意,如果您使用 Docker 运行 Elasticsearch,您可能需要增加配置,max_map_count正如我在这个 Stack Overflow 上的答案. 再次强调,如果没有 Systemd,则“正常”方法将无法奏效。

此外,正如我在(我知道相当长)Ask Ubuntu 答案中提到的,应该可以手动运行 Elasticsearch,但您需要确定执行此操作的正确命令。

相关内容