全部产品
Search
文档中心

Elastic Compute Service:Gunakan Plugin Asisten Cloud untuk Menjaga Layanan Tetap Aktif

更新时间:Jun 26, 2025

Layanan atau skrip mungkin berhenti berjalan karena pengecualian program, restart instance, atau pemadaman listrik. Jika layanan atau skrip gagal dilanjutkan pada kesempatan pertama, bisnis online dapat mengalami kerugian. Topik ini menjelaskan cara menggunakan plugin ecs-tool-servicekeepalive dari Asisten Cloud untuk menjaga layanan tetap aktif.

Implementasi

Berdasarkan systemd di Linux, plugin ecs-tool-servicekeepalive menggunakan mekanisme pemantauan berkala untuk memastikan bahwa layanan atau skrip yang terganggu dapat segera dilanjutkan, sehingga menjamin keandalan dan kelangsungan layanan. Untuk menggunakan plugin dalam menjaga layanan tetap aktif, masukkan perintah yang dapat memulai layanan atau programnya. Plugin kemudian secara otomatis menghasilkan konfigurasi layanan systemd berdasarkan perintah startup yang dimasukkan, tanpa memerlukan konfigurasi manual. Setelah konfigurasi dihasilkan, systemd akan memulai layanan dan mengonfigurasinya untuk mulai saat startup sistem.

Catatan

systemd adalah komponen Linux yang digunakan untuk mengelola layanan. Misalnya, systemd dapat memulai layanan saat startup instance atau memulai ulang layanan setelah berhenti tak terduga. Untuk informasi lebih lanjut, lihat dokumentasi systemd.

Prosedur

Aktifkan keepalive untuk layanan

Setelah Anda menerapkan layanan pada instance Elastic Compute Service (ECS), jalankan plugin ecs-tool-servicekeepalive dari Asisten Cloud sebagai pengguna root.

Mulai layanan sebagai pengguna root

sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,'<cmd>'"

Ganti <cmd> dengan perintah aktual yang dapat memulai layanan. Contoh:

  • Program Shell: /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh

  • Program Python: python /home/root/main.py

Mulai layanan sebagai pengguna tertentu

sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,execstart='<cmd>',user=<user_name>,group=<group_name>"
  • Ganti <cmd> dengan perintah aktual yang dapat memulai layanan. Contoh:

    • Program Shell: /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh

    • Program Python: python /home/root/main.py

  • Ganti <user_name> dengan nama aktual pengguna yang memulai layanan. Jalankan perintah cut -d: -f1 /etc/passwd untuk melihat daftar pengguna yang ada.

  • Ganti <group_name> dengan nama grup dari pengguna yang memulai layanan. Jalankan perintah cut -d: -f1 /etc/group untuk melihat daftar grup pengguna yang ada.

Peringatan
  • Anda harus menentukan jalur absolut dari file skrip atau program.

  • Jika Anda tidak dapat mengaktifkan keepalive untuk layanan, kami sarankan Anda melakukan operasi berikut untuk mencegah pengecualian bisnis akibat proses berjalan ganda untuk layanan tersebut: Kueri status keepalive layanan, nonaktifkan keepalive untuk layanan, atasi masalah, mulai ulang layanan, dan kemudian aktifkan kembali keepalive untuk layanan.

Kueri status keepalive layanan

Jalankan perintah berikut untuk memeriksa apakah keepalive diaktifkan untuk layanan:

sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "status"

Keluaran perintah berikut menunjukkan bahwa keepalive diaktifkan untuk layanan:

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 untuk layanan

Jalankan perintah berikut untuk menonaktifkan keepalive untuk layanan:

sudo acs-plugin-manager --exec --local --plugin ecs-tool-servicekeepalive --params "stop <service_name>"

Ganti <service_name> dengan nama layanan aktual. Anda bisa mendapatkan nama layanan di kolom service_name dari keluaran perintah di Kueri status keepalive layanan.

Catatan

Saat Anda menonaktifkan keepalive untuk layanan, proses layanan dihentikan, layanan tidak lagi dimulai secara otomatis saat startup sistem, dan konfigurasi layanan yang dihasilkan oleh plugin ecs-tool-servicekeepalive juga dihapus.

Contoh

  1. Siapkan skrip untuk layanan uji.

    Dalam skrip, direktori kerja pengguna adalah /home/ecs-user. Ganti direktori kerja dengan yang sebenarnya.

    # Dalam direktori /home/ecs-user, buat folder keepalive-simple dan buat skrip test-keepalive.sh di dalam folder.
    sudo mkdir -p /home/ecs-user/keepalive-simple && \
    sudo tee /home/ecs-user/keepalive-simple/test-keepalive.sh > /dev/null << 'EOF'
    #!/bin/bash
    # Hasilkan pesan log setiap detik di file log yang ditentukan.
    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) Jalankan perintah berikut untuk menanyakan status layanan:

    ps aux | grep test-keepalive.sh

    Keluaran perintah berikut menunjukkan bahwa layanan belum dimulai:

    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'"

    Keluaran perintah berikut menunjukkan bahwa keepalive diaktifkan untuk layanan:

    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.

    1. Jalankan perintah berikut untuk menanyakan status keepalive layanan:

      sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "status"

      Keluaran perintah berikut menunjukkan bahwa keepalive diaktifkan untuk layanan 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. (Opsional) Jalankan perintah berikut untuk menanyakan status layanan:

      ps aux | grep test-keepalive.sh

      Keluaran perintah 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 efek keepalive.

    1. Secara manual picu proses layanan untuk berhenti guna memverifikasi bahwa Asisten Cloud dapat memulai ulang proses tersebut.

      Metode 1: Restart instance ECS

      Restart instance di konsol ECS untuk mensimulasikan restart yang tidak terduga.

      Metode 2: Hentikan proses layanan

      Jalankan perintah berikut untuk menghentikan proses test-keepalive.sh. Ganti <PID> dengan ID proses (PID) yang Anda peroleh dengan menjalankan perintah ps.

      sudo date && kill -9 <PID>
    2. (Opsional) Jalankan perintah berikut untuk menanyakan status layanan:

      ps aux | grep test-keepalive.sh

      Keluaran perintah 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. Jalankan perintah berikut untuk menonaktifkan keepalive untuk layanan:

    sudo acs-plugin-manager --exec --local --plugin ecs-tool-servicekeepalive --params "stop ecs_keepalive_1744256544.service"

    Keluaran perintah berikut menunjukkan bahwa keepalive dinonaktifkan untuk layanan:

    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 Asisten Cloud, lihat Ikhtisar.