全部产品
Search
文档中心

:Apa yang harus saya lakukan jika terjadi kesalahan saat menjalankan perintah systemctl pada instance Linux?

更新时间:Jun 26, 2025

Artikel ini menjelaskan kemungkinan penyebab dan solusi untuk kesalahan yang muncul saat menjalankan perintah systemctl pada instance Linux.

Deskripsi masalah

Saat menjalankan perintah systemctl pada instance Linux, Anda mungkin mengalami kesalahan berikut:

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

Kemungkinan penyebab

Systemd adalah sistem inisialisasi dan manajer layanan yang digunakan untuk menginisialisasi proses pada sistem Linux serta mengelola siklus hidupnya. systemctl merupakan alat baris perintah untuk sistem dan manajer layanan systemd. Jika Anda mengalami kesalahan seperti yang dijelaskan, kemungkinan penyebabnya meliputi:

  • Sistem tidak diinisialisasi dengan systemd.

    • Beberapa distribusi Linux yang lebih lama atau ringan (seperti Devuan, Alpine Linux, atau Void Linux) mungkin menggunakan sistem inisialisasi lain (seperti OpenRC, SysVinit, atau runit) secara default, bukan systemd. Sebagai contoh, Windows Subsystem for Linux (WSL) menggunakan sistem inisialisasi SysVinit secara default.

    • Jika Anda menjalankan perintah dalam kontainer seperti Docker atau Podman, dan kontainer tersebut tidak dikonfigurasi untuk menggunakan systemd sebagai sistem inisialisasi, Anda mungkin mengalami kesalahan ini.

  • Sistem menggunakan systemd untuk inisialisasi, tetapi systemd rusak atau salah konfigurasi.

Solusi

  1. Hubungkan ke instance Linux.

    Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk terhubung ke instance Linux melalui SSH.

  2. Jalankan perintah berikut untuk memastikan apakah sistem diinisialisasi dengan systemd:

    ps -p 1 -o comm=
    • Output kosong atau nilai berbeda dari systemd: Ini menunjukkan bahwa sistem tidak diinisialisasi dengan systemd. Gunakan perintah manajemen layanan yang sesuai dengan sistem inisialisasi saat ini.

      Catatan

      Jika Anda perlu menggunakan skrip terkait systemctl untuk menjalankan aplikasi, kami sarankan menggunakan distribusi Linux lain yang mendukung systemd atau menjalankan sistem Linux yang mendukung systemd di dalam kontainer Docker.

      Sebagai contoh, jika sistem menggunakan SysVinit (output adalah init), Anda dapat menggunakan perintah service sebagai pengganti systemctl. Perbandingan perintah umum ditunjukkan dalam tabel berikut:

      Operasi layanan/perintah

      SysVinit

      Systemd

      Mulai layanan

      sudo service service_name start

      sudo systemctl start service_name

      Hentikan layanan

      sudo service service_name stop

      sudo systemctl stop service_name

      Mulai ulang layanan

      sudo service service_name restart

      sudo systemctl restart service_name

      Periksa status layanan

      sudo service service_name status

      sudo systemctl status service_name

      Aktifkan startup layanan

      sudo chkconfig service_name on

      sudo systemctl enable service_name

      Nonaktifkan startup layanan

      sudo chkconfig service_name off

      sudo systemctl disable service_name

    • Output adalah systemd: Ini menunjukkan bahwa sistem diinisialisasi dengan systemd. Jika masalah tetap ada, itu mungkin disebabkan oleh kerusakan sistem atau salah konfigurasi. Kami sarankan merujuk pada panduan resmi distribusi masing-masing dan mencoba memulihkan layanan systemd.