Artikel ini menjelaskan cara mengelola layanan di sistem Linux menggunakan systemd, yang merupakan pengelola sistem default untuk banyak distribusi Linux modern seperti CentOS® 7, Ubuntu® 16.04, dan versi lebih baru. Untuk sobat server yang ingin tahu cara efektif mengelola layanan atau aplikasi di server, memahami cara kerja systemd adalah keterampilan penting. Mari kita bahas seluk-beluknya dan bagaimana systemctl, perintah utama dalam systemd, dapat membantu sobat server mengelola aplikasi dengan lebih baik.
Apa itu systemd?
systemd adalah sistem inisialisasi dan pengelola layanan di banyak distribusi Linux modern. Fungsinya tidak hanya mengelola layanan yang berjalan di sistem, tetapi juga menangani berbagai tugas administrasi, seperti mengatur proses startup, menangani log, dan memantau kesehatan layanan yang berjalan. systemd menggantikan sistem inisialisasi sebelumnya seperti SysV dan Upstart, karena lebih efisien dalam hal manajemen proses dan mampu menangani berbagai hal secara paralel.
Dengan menggunakan systemctl, sobat server dapat memulai, menghentikan, me-restart, mengaktifkan, atau menonaktifkan layanan dengan sangat mudah. Di bawah ini kita akan membahas beberapa perintah dasar untuk membantu sobat server dalam mengelola layanan di server.
Memulai dan Menghentikan Layanan
Untuk memulai sebuah aplikasi atau layanan, sobat server dapat menggunakan perintah systemctl start, diikuti dengan nama layanan. Misalnya, jika sobat server ingin memulai layanan Apache HTTP Server, perintahnya adalah:
sudo systemctl start httpd.service
Sebaliknya, jika sobat server ingin menghentikan layanan yang sedang berjalan, gunakan perintah systemctl stop:
sudo systemctl stop httpd.service
Untuk memastikan apakah layanan sedang berjalan atau tidak, sobat server dapat menggunakan perintah systemctl status. Ini adalah cara cepat untuk mengecek status aplikasi atau layanan di server. Contoh pengecekan status untuk Apache HTTP Server:
sudo systemctl status httpd.service
Hasil dari perintah ini akan memberikan informasi tentang apakah layanan aktif atau tidak. Misalnya, jika layanan berjalan, sobat server akan melihat status seperti “active (running)”. Jika layanan tidak aktif, status yang akan ditampilkan adalah “inactive (dead)”.
Contoh Output:
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-05-24 01:30:02 UTC; 1s ago
Dari informasi di atas, sobat server bisa mengetahui bahwa layanan httpd (Apache) sedang berjalan, dan beberapa informasi lainnya terkait status layanan tersebut.
Memulai Ulang atau Memuat Ulang Layanan
Ada kalanya sobat server tidak hanya perlu memulai atau menghentikan layanan, tetapi juga melakukan restart atau reload. Namun, penting untuk memahami perbedaan antara kedua tindakan ini.
- Restart (systemctl restart): Ketika sobat server menjalankan perintah ini, layanan akan di-restart. Jika layanan sedang berjalan, maka akan dihentikan terlebih dahulu dan kemudian dimulai kembali. Jika layanan tidak berjalan, perintah ini akan memulai layanan tersebut.
sudo systemctl restart httpd.service
- Reload (systemctl reload): Berbeda dengan restart, reload tidak menghentikan layanan. Reload hanya akan menerapkan perubahan konfigurasi layanan yang sudah dibuat tanpa menghentikan proses yang sedang berjalan. Misalnya, jika sobat server membuat perubahan pada file konfigurasi Apache seperti vhost, sobat server cukup menjalankan reload agar perubahan tersebut berlaku.
sudo systemctl reload httpd.service
Memahami perbedaan antara restart dan reload sangat penting karena sobat server mungkin tidak ingin menghentikan layanan yang sedang digunakan oleh pengguna lain, seperti server web. Dengan reload, sobat server bisa memastikan layanan tetap berjalan tanpa gangguan, sambil menerapkan perubahan yang diperlukan.
Mengaktifkan dan Menonaktifkan Layanan
Terkadang, sobat server perlu memastikan bahwa layanan tertentu secara otomatis dimulai saat server di-reboot. Untuk ini, sobat server bisa menggunakan perintah systemctl enable. Misalnya, jika sobat server ingin memastikan bahwa Apache HTTP Server dimulai setiap kali server dinyalakan, gunakan perintah berikut:
sudo systemctl enable httpd.service
Sebaliknya, jika sobat server tidak ingin layanan tertentu dimulai saat server menyala, gunakan perintah systemctl disable. Ini akan memastikan layanan tidak berjalan otomatis saat booting, tetapi sobat server tetap bisa memulai layanan tersebut secara manual jika dibutuhkan.
sudo systemctl disable httpd.service
Manfaat Menggunakan systemd
Salah satu keunggulan utama systemd dibanding sistem inisialisasi sebelumnya adalah kemampuannya untuk menjalankan beberapa proses secara paralel. Ini memungkinkan server untuk melakukan booting lebih cepat, karena layanan-layanan yang tidak saling bergantung dapat dimulai secara bersamaan. Selain itu, systemd menyediakan berbagai fitur manajemen layanan yang canggih, seperti pemantauan layanan secara otomatis dan dukungan untuk pengelolaan log yang lebih baik.
Dengan systemd, sobat server juga bisa membuat unit layanan kustom untuk aplikasi yang tidak memiliki layanan bawaan. Ini sangat membantu ketika sobat server menjalankan aplikasi pihak ketiga atau skrip khusus di server.
Tips Tambahan untuk Mengelola Layanan
- Menggunakan Alias atau Shortcut: Untuk memudahkan sobat server dalam menjalankan perintah systemctl, sobat server bisa membuat alias pada terminal. Misalnya, alias untuk memulai layanan Apache bisa ditambahkan pada file
.bashrc
seperti berikut:
alias startapache="sudo systemctl start httpd.service"
- Pemantauan Layanan Otomatis: systemd juga memungkinkan pemantauan layanan secara otomatis. Sobat server bisa mengonfigurasi agar layanan yang berhenti secara tidak sengaja akan secara otomatis dimulai kembali.
- Jangan Lupa untuk Mengecek Log: Jika layanan tidak berjalan seperti yang diharapkan, gunakan perintah journalctl untuk melihat log terkait layanan tersebut. Ini akan membantu sobat server menemukan masalah yang mungkin terjadi.
sudo journalctl -u httpd.service
Kesimpulan
Dengan pemahaman yang baik tentang systemd dan perintah systemctl, sobat server bisa dengan mudah mengelola berbagai layanan di server Linux modern. Dari memulai dan menghentikan layanan, hingga me-restart dan memuat ulang konfigurasi, systemctl memberi sobat server kendali penuh atas bagaimana layanan berfungsi di sistem. Dengan menerapkan praktik-praktik terbaik ini, sobat server bisa memastikan server selalu berjalan dengan optimal dan stabil, serta lebih mudah untuk di-manage.