Fedora

如何在基於 WSL 的 Fedora 中啟動服務?

  • March 3, 2022

我在適用於 Linux 2 的 Windows 子系統下有一個 Fedora 33。

我想執行 sshd。為此我嘗試了

$ sudo systemctl start sshd

但我收到了錯誤資訊

System has not been booted with systemd as init system (PID 1). Can't operate

搜尋我發現的此錯誤消息

https://linuxhandbook.com/system-has-not-been-booted-with-systemd/

在這種情況下建議使用 service 命令。我試過但它說

Redirecting to /bin/systemctl start sshd.service

所以我得到了同樣的錯誤。

我可以在基於 WSL2 的 Fedora 33 上做什麼?

更新:我已經使用雲映像和 wsl 命令將 Fedora 安裝到 WSL 上,如下所述:

https://fedoramagazine.org/wsl-fedora-33/

我使用 Fedora 35,但這可能也適用於其他 Fedora 版本。

就像 NotTheDr01ds 說的,fedora 不支持service start sshd。所以你可以通過命令手動執行 sshd nohup /usr/sbin/sshd -D > sshd.log 2>&1 &。或者你需要讓 systemd 為 wsl 工作。

由於 genie 支持 fedora,所以你可以嘗試使用它來使 systemd 工作。

這是項目網址:https ://github.com/arkane-systems/genie

  1. 你可以從這個頁面下載 rpm 包:https ://github.com/arkane-systems/genie/releases
  2. 使用命令安裝 genie-*.x86_64.rpmdnf install
  3. 在命令中使用精靈genie -s
  4. 使用 systemctl 啟動 sshdsystemctl start sshd

您可能會遇到Transport endpoint is not connected第四步的錯誤。這是由已知的 wsl ldconfig 問題引起的。

請按照以下說明進行修復:

https ://github.com/microsoft/WSL/issues/5548#issuecomment-990521993

https://github.com/microsoft/WSL/issues/5548#issuecomment-912495487

引用自:https://unix.stackexchange.com/questions/639866