日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在Linux實例中執行systemctl命令報錯怎么辦?

本文主要介紹在Linux實例中執行systemctl命令報錯的可能原因和解決方案。

問題描述

在Linux系統實例中執行systemctl命令出現類似如下報錯:

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to get D-Bus connection: xxx xxx.

可能原因

systemd是一個初始化系統和服務管理器,用于初始化Linux系統上的進程,以及管理它們的生命周期。systemctl是systemd系統和服務管理器的命令行工具。如果您出現問題描述中的錯誤,可能原因如下:

  • 系統沒有使用systemd初始化。

    • 一些較老的Linux發行版或者某些輕量級發行版(如Devuan、Alpine Linux或Void Linux)可能默認使用其他初始化系統(如OpenRC、SysVinit或runit),而不是systemd。比如,Windows Subsystem for Linux (WSL)默認情況下使用SysVinit初始化系統而不是systemd。

    • 如果您在一個像Docker或Podman這樣的容器內部執行命令,而該容器未配置為使用systemd作為初始化系統,您可能會遇到這個錯誤。

  • 系統使用了systemd初始化,但systemd遭到損壞或者配置有錯誤。

解決方案

  1. 遠程連接Linux實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例

  2. 執行以下命令,確認系統是否使用systemd初始化。

    ps -p 1 -o comm=
    • 輸出結果為空或者其他值:表示系統沒有使用systemd進行初始化,請使用與當前初始化系統相對應的服務管理命令。

      說明

      如果您需要使用systemctl相關腳本執行應用程序,建議使用其他支持systemd的Linux發行版或在Docker容器中運行支持systemd的Linux系統。

      例如,如果系統使用SysVinit(輸出為init),可使用service命令代替systemctl。常見命令對照如下表所示:

      服務操作\命令

      SysVinit

      Systemd

      啟動服務

      sudo service service_name start

      sudo systemctl start service_name

      停止服務

      sudo service service_name stop

      sudo systemctl stop service_name

      重啟服務

      sudo service service_name restart

      sudo systemctl restart service_name

      檢查服務狀態

      sudo service service_name status

      sudo systemctl status service_name

      啟用服務的自啟動

      sudo chkconfig service_name on

      sudo systemctl enable service_name

      關閉服務的自啟動

      sudo chkconfig service_name off

      sudo systemctl disable service_name

    • 輸出結果為systemd:表示系統已通過systemd進行初始化。如果問題仍然存在,則可能是由于系統損壞或配置錯誤造成的。建議您根據相應發行版的官方指南,嘗試恢復systemd服務。