Todos os produtos
Search
Central de documentação

Elastic Compute Service:Mantenha serviços ativos com um plugin do Cloud Assistant

Última atualização: Jul 03, 2026

Configure o plugin ecs-tool-servicekeepalive do Cloud Assistant para reiniciar automaticamente serviços ou scripts interrompidos por exceções, reinicializações de instância ou quedas de energia.

Como funciona

O plugin ecs-tool-servicekeepalive usa o systemd do Linux para monitorar periodicamente e reiniciar automaticamente serviços ou scripts interrompidos. Ao fornecer um comando de inicialização, o plugin gera a configuração de serviço do systemd automaticamente. O systemd inicia o serviço e o habilita na inicialização do sistema.

Nota

O systemd é um gerenciador de serviços do Linux que inicia serviços na inicialização e os reinicia após paradas inesperadas. Consulte a documentação do systemd.

Procedimento

Ativar keepalive para um serviço

Após implantar serviços em uma instância ECS, inicie o plugin ecs-tool-servicekeepalive como usuário root.

Iniciar um serviço como usuário root

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

Substitua <cmd> pelo comando de inicialização. Exemplos:

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

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

Iniciar um serviço como um usuário específico

sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,execstart='<cmd>',user=<user_name>,group=<group_name>"
  • Substitua <cmd> pelo comando de inicialização. Exemplos:

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

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

  • Substitua <user_name> pelo usuário que inicia o serviço. Execute cut -d: -f1 /etc/passwd para visualizar os usuários existentes.

  • Substitua <group_name> pelo nome do grupo do usuário. Execute cut -d: -f1 /etc/group para visualizar os grupos de usuários existentes.

Aviso

Consultar o status de keepalive de um serviço

Verifique se o keepalive está ativado para um serviço:

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

A saída a seguir indica que o keepalive está ativado:

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

Desativar keepalive para um serviço

Desative o keepalive para um serviço:

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

Substitua <service_name> pelo nome real do serviço na coluna service_name da saída em Consultar o status de keepalive de um serviço.

Nota

Desativar o keepalive encerra o processo do serviço, remove a configuração de início automático e exclui a configuração de serviço gerada pelo plugin ecs-tool-servicekeepalive.

Exemplo

  1. Prepare um script para um serviço de teste.

    Neste script, o diretório de trabalho é /home/ecs-user. Substitua-o pelo seu diretório de trabalho real.

    # In the /home/ecs-user directory, create the keepalive-simple folder and create the test-keepalive.sh script in the folder.
    sudo mkdir -p /home/ecs-user/keepalive-simple && \
    sudo tee /home/ecs-user/keepalive-simple/test-keepalive.sh > /dev/null << 'EOF'
    #!/bin/bash
    # Generate a log message every second in the specified log file.
    while true
    do
       sudo echo "$(date '+%Y-%m-%d %H:%M:%S') progress is alive" >> $1
        sleep 1
    done
    EOF
    # Grant executable permissions on the script.
    sudo chmod +x /home/ecs-user/keepalive-simple/test-keepalive.sh
  2. (Opcional) Consulte o status do serviço:

    ps aux | grep test-keepalive.sh

    A saída a seguir indica que o serviço não foi iniciado:

    ecs-user    2207  0.0  0.0 221528   916 pts/0    S+   11:34   0:00 grep --color=auto test-keepalive.sh
  3. Ative o keepalive para o serviço.

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

    A saída a seguir indica que o keepalive está ativado:

    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. Consulte o status do keepalive e do serviço.

    1. Consulte o status do keepalive:

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

      A saída a seguir indica que o keepalive está ativado e o serviço está em execução:

      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. (Opcional) Consulte o status do serviço:

      ps aux | grep test-keepalive.sh

      A saída a seguir indica que o serviço está em execução:

      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. (Opcional) Verifique o efeito do keepalive.

    1. Interrompa manualmente o processo do serviço para verificar se o Cloud Assistant o reinicia.

      Método 1: Reiniciar a instância ECS

      Reinicie a instância para simular uma reinicialização inesperada.

      Método 2: Encerrar o processo do serviço

      Encerre o processo test-keepalive.sh. Substitua <PID> pelo ID do processo obtido com o comando ps.

      sudo date && kill -9 <PID>
    2. (Opcional) Consulte o status do serviço:

      ps aux | grep test-keepalive.sh

      A saída a seguir indica que o serviço está em execução:

      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. Desative o keepalive para o serviço:

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

    A saída a seguir indica que o keepalive está desativado:

    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

Referências

Consulte a Visão geral do Cloud Assistant.