15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
31.10.2024

Perintah Systemctl: Cara Memulai Ulang, Memuat Ulang, dan Menghentikan Layanan di Linux

Mengelola layanan secara efisien adalah salah satu keterampilan paling penting bagi administrator sistem Linux. Baik Anda menjalankan server web dengan lalu lintas tinggi di paket VPS Hosting atau memelihara lingkungan Dedicated Server, memahami cara mengontrol layanan sistem menggunakan systemctl sangat penting. Panduan komprehensif ini mencakup semua yang perlu Anda ketahui tentang memulai ulang, memuat ulang, dan menghentikan layanan di Linux menggunakan systemd dan systemctl.

Apa Itu systemd dan Mengapa Penting?

systemd adalah sistem init dan manajer layanan default yang digunakan di hampir semua distribusi Linux modern, termasuk Ubuntu, Debian, CentOS, Rocky Linux, AlmaLinux, dan Fedora. Ini menggantikan sistem init yang lebih lama seperti SysVinit dan Upstart, membawa peningkatan signifikan dalam cara Linux melakukan boot dan mengelola proses.

Fitur Utama systemd

  • Startup layanan paralel — Secara dramatis mengurangi waktu boot dengan memulai layanan secara bersamaan
  • Aktivasi layanan sesuai permintaan — Layanan dapat diluncurkan hanya saat diperlukan, menghemat sumber daya sistem
  • Manajemen ketergantungan — Secara otomatis menangani ketergantungan dan pengurutan layanan
  • Logging terpusat — Terintegrasi dengan journald untuk manajemen log terstruktur dan terpadu
  • Kontrol sumber daya berbasis Cgroup — Melacak dan membatasi penggunaan CPU, memori, dan I/O per layanan
  • Aktivasi socket dan D-Bus — Memungkinkan pola komunikasi antar proses yang canggih

Memahami systemd bukan hanya akademis — ini secara langsung mempengaruhi stabilitas, kinerja, dan keamanan lingkungan Linux Anda.

Apa Itu systemctl?

systemctl adalah antarmuka baris perintah utama untuk berinteraksi dengan systemd. Ini memungkinkan administrator untuk:

  • Memulai, menghentikan, memulai ulang, dan memuat ulang layanan
  • Mengaktifkan atau menonaktifkan layanan saat boot
  • Memeriksa status layanan dan melihat log
  • Mengelola target sistem (runlevel)
  • Memuat ulang konfigurasi daemon systemd

Semua perintah systemctl yang memodifikasi status sistem memerlukan hak istimewa root atau akses sudo.

Perintah systemctl Inti untuk Manajemen Layanan

1. Memulai Ulang Layanan

Memulai ulang layanan menghentikannya sepenuhnya dan kemudian memulainya kembali. Ini adalah operasi utama ketika:

  • Anda telah membuat perubahan konfigurasi yang memerlukan restart proses penuh
  • Layanan telah mogok atau menjadi tidak responsif
  • Anda perlu menerapkan file biner yang diperbarui setelah upgrade paket

Sintaks:

sudo systemctl restart <service_name>

Contoh — Mulai ulang server web Nginx:

sudo systemctl restart nginx

Contoh — Mulai ulang server web Apache:

sudo systemctl restart apache2

Contoh — Mulai ulang database MySQL/MariaDB:

sudo systemctl restart mysql

> Penting: Memulai ulang layanan menyebabkan gangguan singkat. Untuk lingkungan produksi, pertimbangkan menggunakan reload jika didukung untuk menghindari downtime.

2. Memuat Ulang Layanan

Memuat ulang menginstruksikan layanan yang sedang berjalan untuk membaca ulang file konfigurasinya tanpa menghentikan proses. Ini ideal untuk menerapkan perubahan konfigurasi dengan zero downtime.

Sintaks:

sudo systemctl reload <service_name>

Contoh — Muat ulang Nginx setelah mengedit konfigurasinya:

sudo systemctl reload nginx

Contoh — Muat ulang daemon SSH setelah memodifikasi sshd_config:

sudo systemctl reload sshd

> Catatan: Tidak semua layanan mendukung operasi reload. Jika layanan tidak mengimplementasikannya, systemctl akan mengembalikan kesalahan. Dalam kasus tersebut, gunakan restart sebagai gantinya.

Pro Tip — Gunakan reload-or-restart untuk kompatibilitas maksimal:

sudo systemctl reload-or-restart <service_name>

Perintah ini mencoba reload terlebih dahulu. Jika layanan tidak mendukung reload, secara otomatis kembali ke restart penuh — menjadikannya opsi teraman untuk deployment dan otomasi yang ditulis skrip.

3. Menghentikan Layanan

Menghentikan layanan mengakhirinya segera. Gunakan ini ketika Anda perlu membawa layanan offline untuk pemeliharaan, troubleshooting, atau rekonfigurasi.

Sintaks:

sudo systemctl stop <service_name>

Contoh — Hentikan server web Nginx:

sudo systemctl stop nginx

Contoh — Hentikan layanan firewall:

sudo systemctl stop ufw

> Peringatan: Menghentikan layanan penting (seperti sshd di server jarak jauh) dapat mengunci Anda keluar dari sistem. Selalu pastikan Anda memiliki metode akses alternatif, seperti konsol atau manajemen out-of-band, sebelum menghentikan layanan penting.

4. Memulai Layanan

Jika layanan tidak sedang berjalan, gunakan perintah start untuk meluncurkannya.

Sintaks:

sudo systemctl start <service_name>

Contoh:

sudo systemctl start nginx

5. Mengaktifkan Layanan saat Boot

Mengaktifkan layanan membuat symlink yang diperlukan sehingga systemd secara otomatis memulainya selama boot sistem.

Sintaks:

sudo systemctl enable <service_name>

Contoh:

sudo systemctl enable nginx

Aktifkan dan mulai secara bersamaan (direkomendasikan):

sudo systemctl enable --now nginx

6. Menonaktifkan Layanan saat Boot

Menonaktifkan layanan mencegahnya dari startup otomatis, tetapi tidak menghentikannya jika sedang berjalan.

Sintaks:

sudo systemctl disable <service_name>

Contoh:

sudo systemctl disable bluetooth

Nonaktifkan dan hentikan secara bersamaan:

sudo systemctl disable --now bluetooth

7. Memeriksa Status Layanan

Perintah status adalah salah satu perintah systemctl yang paling sering digunakan. Ini memberikan snapshot real-time dari status layanan, termasuk entri log terbaru.

Sintaks:

sudo systemctl status <service_name>

Contoh — Periksa status Nginx:

sudo systemctl status nginx

Contoh output:

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-01-15 10:23:45 UTC; 2h 34min ago
       Docs: man:nginx(8)
    Process: 1234 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 1235 (nginx)
      Tasks: 3 (limit: 4915)
     Memory: 6.2M
        CPU: 45ms
     CGroup: /system.slice/nginx.service
             ├─1235 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─1236 "nginx: worker process"

Output mencakup:

  • Loaded — Apakah file unit dimuat dan jika diaktifkan saat boot
  • Active — Status berjalan saat ini (active (running), inactive (dead), failed, dll.)
  • Main PID — ID proses utama layanan
  • Memory/CPU — Metrik konsumsi sumber daya
  • CGroup — Hierarki kelompok kontrol
  • Recent logs — Entri journal terakhir untuk diagnostik cepat

Perintah systemctl Lanjutan

Memeriksa apakah Layanan Aktif atau Diaktifkan

Untuk digunakan dalam skrip dan otomasi, perintah ini mengembalikan kode exit gaya boolean sederhana:

# Check if a service is currently running
systemctl is-active nginx

# Check if a service is enabled at boot
systemctl is-enabled nginx

# Check if a service has failed
systemctl is-failed nginx

Mendaftar Semua Layanan

# List all loaded and active units
systemctl list-units --type=service

# List all installed unit files and their states
systemctl list-unit-files --type=service

# List only failed services
systemctl --failed

Memuat Ulang Daemon systemd

Setelah membuat atau memodifikasi file unit, Anda harus memuat ulang daemon systemd untuk mengenali perubahan:

sudo systemctl daemon-reload

Menutup masker layanan mencegahnya dari startup manual atau otomatis — bahkan oleh layanan lain:

# Prevent a service from ever starting
sudo systemctl mask <service_name>

# Re-enable a masked service
sudo systemctl unmask <service_name>

Referensi Cepat: Lembar Contekan Perintah systemctl

PerintahDeskripsi
systemctl start <service>Mulai layanan yang dihentikan
systemctl stop <service>Hentikan layanan yang sedang berjalan
systemctl restart <service>Hentikan dan mulai ulang layanan
systemctl reload <service>Muat ulang konfigurasi tanpa menghentikan
systemctl reload-or-restart <service>Muat ulang jika didukung, jika tidak mulai ulang
systemctl enable <service>Aktifkan layanan saat boot
systemctl disable <service>Nonaktifkan layanan saat boot
systemctl enable --now <service>Aktifkan dan mulai segera
systemctl disable --now <service>Nonaktifkan dan hentikan segera
systemctl status <service>Tampilkan status layanan dan log
systemctl is-active <service>Periksa apakah layanan sedang berjalan
systemctl is-enabled <service>Periksa apakah layanan dimulai saat boot
systemctl is-failed <service>Periksa apakah layanan telah gagal
systemctl list-units --type=serviceDaftar semua layanan aktif
systemctl --failedDaftar semua layanan yang gagal
systemctl daemon-reloadMuat ulang file unit systemd
systemctl mask <service>Sepenuhnya cegah layanan dari startup
systemctl unmask <service>Hapus masker dari layanan

Kasus Penggunaan Praktis untuk Administrator Server

Skenario 1: Menerapkan Perubahan Konfigurasi Nginx

Anda telah mengedit /etc/nginx/nginx.conf di server web Anda. Untuk menerapkan perubahan tanpa menghilangkan koneksi aktif:

# First, test the configuration syntax
sudo nginx -t

# If the test passes, reload gracefully
sudo systemctl reload nginx

Skenario 2: Memulihkan Layanan yang Gagal

Layanan telah mogok dan menunjukkan status failed:

# Check what went wrong
sudo systemctl status myapp.service

# View full logs for the service
sudo journalctl -u myapp.service -n 50 --no-pager

# Restart the service
sudo systemctl restart myapp.service

Skenario 3: Menyiapkan Layanan Baru Setelah Deployment

Setelah men-deploy aplikasi baru dengan file unit kustom:

# Reload systemd to recognize the new unit file
sudo systemctl daemon-reload

# Enable and start the service in one command
sudo systemctl enable --now myapp.service

# Verify it's running correctly
sudo systemctl status myapp.service

Perbedaan Antara restart, reload, dan stop — Sekilas

TindakanProses Dihentikan?Downtime?Kasus Penggunaan
stopYaYaPemeliharaan, troubleshooting
restartYa, kemudian dimulai ulangSingkatPerubahan konfigurasi yang mem
15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai