systemd adalah sistem inisialisasi dan pengelola layanan yang digunakan pada banyak distribusi Linux modern. Dikenalkan pada tahun 2010, systemd menggantikan initsystem lama seperti SysVinit dan Upstart. Dengan systemd, manajemen proses, layanan, dan perangkat keras menjadi lebih efisien dan cepat.
Apa Itu systemd?
systemd adalah sistem manajemen inisialisasi yang digunakan di banyak distribusi Linux modern seperti Ubuntu, CentOS, Debian, dan Fedora. systemd mengatur proses booting, menjalankan layanan (services), dan menangani tugas-tugas lain yang dibutuhkan oleh sistem untuk berjalan.
Beberapa fitur utama systemd adalah:
- Parallelization: Proses dapat dijalankan secara paralel untuk mempercepat waktu boot.
- Layanan yang Dikelola: Mengelola dan memantau layanan.
- Dependency Management: Memastikan layanan dijalankan dalam urutan yang benar.
- Journaling: Logging sistem yang lebih terstruktur.
Bagaimana Cara Kerja systemd?
- Proses Booting: systemd menginisialisasi sistem saat booting. Ini termasuk memulai layanan penting seperti jaringan, perangkat keras, dan proses lainnya.
- Layanan: systemd menangani layanan seperti Apache, MySQL, dan SSH, memastikan mereka berjalan sesuai dengan pengaturan.
- Unit: systemd menggunakan unit untuk menggambarkan berbagai layanan, mount points, dan perangkat. Setiap unit memiliki file konfigurasi yang terletak di direktori
/etc/systemd/system/
.
Cara Menggunakan systemd
1. Memahami Struktur Unit di systemd
Systemd menggunakan unit untuk mengelola layanan. Ada beberapa jenis unit:
- service unit (.service): Untuk layanan sistem seperti web server atau database.
- target unit (.target): Untuk menentukan berbagai tahap sistem, seperti multi-user.target yang mengatur mode multi-user.
- mount unit (.mount): Untuk pengaturan sistem file.
- socket unit (.socket): Untuk komunikasi antar proses.
Unit-unit ini disimpan dalam direktori:
/etc/systemd/system/
: Untuk unit yang dibuat oleh administrator./lib/systemd/system/
: Untuk unit sistem yang disediakan oleh distribusi.
2. Memulai dan Menghentikan Layanan dengan systemd
Untuk mengelola layanan menggunakan systemd, Anda akan menggunakan perintah systemctl. Berikut adalah perintah-perintah dasar:
Memulai layanan (misalnya Apache):
sudo systemctl start apache2.service
Menjeda layanan (misalnya Apache):
sudo systemctl stop apache2.service
Memulai layanan secara otomatis saat booting (misalnya Apache):
sudo systemctl enable apache2.service
Menonaktifkan layanan agar tidak dimulai saat booting (misalnya Apache):
sudo systemctl disable apache2.service
Memeriksa status layanan (misalnya Apache):
sudo systemctl status apache2.service
3. Menambahkan Layanan Baru
Untuk menambahkan layanan baru, Anda perlu membuat file unit di /etc/systemd/system/
. Berikut adalah contoh file unit untuk menjalankan skrip atau aplikasi khusus:
Buat file unit baru, misalnya myapp.service
:
sudo nano /etc/systemd/system/myapp.service
Isi file :
[Unit]
Description=My Application Service
After=network.target
[Service]
ExecStart=/path/to/your/app
Restart=always
User=nobody
[Install]
WantedBy=multi-user.target
Setelah file unit dibuat, jalankan perintah berikut:
sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
4. Menggunakan Logging dengan journalctl
systemd menyediakan sistem logging terpusat yang disebut journald. Anda dapat melihat log layanan menggunakan journalctl
.
Melihat semua log:
sudo journalctl
Melihat log untuk layanan tertentu (misalnya Apache):
sudo journalctl -u apache2.service
Melihat log dalam mode waktu nyata:
sudo journalctl -f
FAQ
- Apa itu systemd di Linux?
- systemd adalah sistem manajemen inisialisasi yang digunakan untuk mengelola proses booting dan layanan di banyak distribusi Linux modern.
- Bagaimana cara mengelola layanan di systemd?
- Anda bisa menggunakan perintah
systemctl
untuk mengelola layanan, sepertistart
,stop
, danstatus
.
- Anda bisa menggunakan perintah
- Apa itu unit dalam systemd?
- Unit adalah objek yang dikelola oleh systemd, seperti layanan (.service), target (.target), dan mount (.mount).
- Apa yang dimaksud dengan
systemctl enable
dansystemctl start
?systemctl start
digunakan untuk memulai layanan, sedangkansystemctl enable
digunakan untuk memastikan layanan mulai secara otomatis saat booting.
- Bagaimana cara menggunakan journalctl untuk melihat log systemd?
- Gunakan perintah
journalctl
untuk melihat log systemd. Anda dapat menambahkan-u nama-layanan.service
untuk melihat log dari layanan tertentu.
- Gunakan perintah