Layanan atau skrip dapat berhenti akibat error aplikasi, restart instans, atau pemadaman listrik, yang berpotensi menyebabkan gangguan bisnis. Topik ini menjelaskan cara menggunakan plugin Cloud Assistant ecs-tool-servicekeepalive untuk memastikan keepalive suatu layanan.
Cara kerja
Plugin Cloud Assistant ecs-tool-servicekeepalive memanfaatkan systemd—manajer layanan Linux—untuk secara otomatis me-restart layanan atau skrip yang terganggu, sehingga menjamin keandalan dan kelangsungan layanan. Untuk menggunakan plugin ini dalam menjaga keepalive, Anda cukup menyediakan perintah startup. Plugin tersebut kemudian akan menghasilkan konfigurasi layanan systemd yang diperlukan, menjalankan layanan, serta mengaktifkan auto-start saat boot tanpa perlu mengedit file secara manual.
systemd adalah manajer layanan di Linux yang mampu melakukan tugas seperti mengaktifkan auto-start saat boot dan me-restart layanan yang berhenti secara tak terduga. Untuk informasi lebih lanjut, lihat dokumentasi systemd resmi.
Prosedur
Aktifkan keepalive layanan
Setelah men-deploy layanan, jalankan plugin Cloud Assistant ecs-tool-servicekeepalive sebagai pengguna root.
Jalankan sebagai root
sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,'<cmd>'"
<cmd>: Perintah startup untuk layanan. Lihat contoh di bawah.
-
Skrip shell: (
/bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh). -
Skrip Python: (
python /home/root/main.py).
Jalankan sebagai pengguna tertentu
sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,execstart='<cmd>',user=<user_name>,group=<group_name>"
-
<cmd>: Perintah startup untuk layanan. Lihat contoh di bawah.
-
Skrip shell: (
/bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh). -
Skrip Python: (
python /home/root/main.py).
-
-
<user_name>: Nama pengguna yang menjalankan layanan. Jalankan
cut -d: -f1 /etc/passwduntuk melihat daftar pengguna yang tersedia. -
<group_name>: Nama kelompok untuk layanan. Jalankan
cut -d: -f1 /etc/groupuntuk melihat daftar kelompok pengguna yang tersedia.
-
Anda harus menggunakan jalur mutlak untuk file skrip atau program.
-
Jika pengaktifan keepalive gagal, pertama-tama kueri status keepalive layanan, lalu nonaktifkan keepalive untuk layanan pada entri yang gagal sebelum mencoba lagi. Hal ini mencegah dimulainya beberapa proses layanan sekaligus, yang dapat menyebabkan masalah pada aplikasi Anda.
Kueri status keepalive
Jalankan perintah berikut untuk memeriksa status keepalive.
sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "status"
Contoh output berikut menunjukkan bahwa keepalive telah diaktifkan.
service_name execstart user group status
ecs_keepalive_1744262359.service /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log active (running) since Thu 2025-04-10 13
Nonaktifkan keepalive layanan
Jika perlu menonaktifkan keepalive, jalankan perintah berikut.
sudo acs-plugin-manager --exec --local --plugin ecs-tool-servicekeepalive --params "stop <service_name>"
<service_name>: Nama konfigurasi layanan. Nilai ini terdapat pada kolom service_name dari output langkah Kueri status keepalive.
Saat Anda menonaktifkan keepalive, proses layanan akan dihentikan, konfigurasi auto-start dihapus, dan file konfigurasi layanan yang dibuat oleh plugin ecs-tool-servicekeepalive juga dihapus.
Contoh
-
Siapkan skrip layanan uji coba.
Skrip ini menggunakan
/home/ecs-usersebagai direktori kerja. Gantilah dengan direktori kerja aktual Anda.# Buat direktori keepalive-simple di direktori /home/ecs-user dan buat skrip test-keepalive.sh di dalamnya. sudo mkdir -p /home/ecs-user/keepalive-simple && \ sudo tee /home/ecs-user/keepalive-simple/test-keepalive.sh > /dev/null << 'EOF' #!/bin/bash # Tulis satu baris log per detik ke file log yang Anda tentukan. while true do sudo echo "$(date '+%Y-%m-%d %H:%M:%S') progress is alive" >> $1 sleep 1 done EOF # Berikan izin eksekusi pada skrip. sudo chmod +x /home/ecs-user/keepalive-simple/test-keepalive.sh -
(Opsional) Kueri status layanan yang sedang berjalan.
Jalankan perintah berikut untuk mengkueri status layanan yang sedang berjalan.
ps aux | grep test-keepalive.shContoh output berikut menunjukkan bahwa layanan tidak sedang berjalan.
ecs-user 2207 0.0 0.0 221528 916 pts/0 S+ 11:34 0:00 grep --color=auto test-keepalive.sh -
Aktifkan keepalive untuk layanan.
sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,'/bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log'"Contoh output berikut menunjukkan bahwa keepalive telah diaktifkan.
Created symlink /etc/systemd/system/multi-user.target.wants/ecs_keepalive_1744256544.service → /etc/systemd/system/ecs_keepalive_1744256544.service. Start systemd service for "/bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log" success -
Kueri status keepalive dan status layanan yang sedang berjalan.
-
Jalankan perintah berikut untuk mengkueri status keepalive.
sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "status"Contoh output berikut menunjukkan bahwa keepalive telah diaktifkan dan layanan sedang berjalan.
service_name execstart user group status ecs_keepalive_1744256544.service /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log active (running) since Thu 2025-04-10 11 -
Jalankan perintah berikut untuk mengkueri status layanan yang sedang berjalan.
ps aux | grep test-keepalive.shContoh output berikut menunjukkan bahwa layanan sedang berjalan.
root 3144 0.0 0.0 222200 3420 ? Ss 11:42 0:00 /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log ecs-user 6841 0.0 0.0 221660 968 pts/0 S+ 11:49 0:00 grep --color=auto test-keepalive.sh
-
-
(Opsional) Verifikasi keepalive.
-
Hentikan layanan secara manual untuk memverifikasi bahwa Cloud Assistant secara otomatis me-restart prosesnya.
Metode 1: Restart instans ECS
Restart instans untuk mensimulasikan restart instans yang tak terduga.
Metode 2: Hentikan proses
Jalankan perintah berikut untuk menghentikan proses test-keepalive.sh. Ganti <PID> dengan PID program yang dikembalikan oleh perintah
ps.sudo date && kill -9 <PID> -
Jalankan perintah berikut untuk mengkueri status layanan yang sedang berjalan.
ps aux | grep test-keepalive.shContoh output berikut menunjukkan bahwa layanan sedang berjalan.
root 33061 0.0 0.0 222200 3504 ? Ss 13:19 0:00 /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log ecs-user 34558 0.0 0.0 221660 2556 pts/0 S+ 13:23 0:00 grep --color=auto test-keepalive.sh
-
-
Nonaktifkan keepalive untuk layanan.
Jalankan perintah berikut untuk menonaktifkan keepalive.
sudo acs-plugin-manager --exec --local --plugin ecs-tool-servicekeepalive --params "stop ecs_keepalive_1744256544.service"Contoh output berikut menunjukkan bahwa konfigurasi keepalive telah dinonaktifkan.
service check ok, file:ecs_keepalive_1744256544.service is valid Removed /etc/systemd/system/multi-user.target.wants/ecs_keepalive_1744256544.service. stop service ok, service:ecs_keepalive_1744256544.service is stopped and removed
Referensi
Untuk informasi lebih lanjut tentang Cloud Assistant, lihat ikhtisar Cloud Assistant.