All Products
Search
Document Center

Elastic Compute Service:Service keepalive dengan plugin Cloud Assistant

Last Updated:Apr 29, 2026

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.

Catatan

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/passwd untuk melihat daftar pengguna yang tersedia.

  • <group_name>: Nama kelompok untuk layanan. Jalankan cut -d: -f1 /etc/group untuk melihat daftar kelompok pengguna yang tersedia.

Peringatan
  • 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.

Catatan

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

  1. Siapkan skrip layanan uji coba.

    Skrip ini menggunakan /home/ecs-user sebagai 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
  2. (Opsional) Kueri status layanan yang sedang berjalan.

    Jalankan perintah berikut untuk mengkueri status layanan yang sedang berjalan.

    ps aux | grep test-keepalive.sh

    Contoh 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
  3. 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
  4. Kueri status keepalive dan status layanan yang sedang berjalan.

    1. 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
    2. Jalankan perintah berikut untuk mengkueri status layanan yang sedang berjalan.

      ps aux | grep test-keepalive.sh

      Contoh 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
  5. (Opsional) Verifikasi keepalive.

    1. 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>
    2. Jalankan perintah berikut untuk mengkueri status layanan yang sedang berjalan.

      ps aux | grep test-keepalive.sh

      Contoh 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
  6. 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.