"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Configurando o acesso multiusuário PMou na instância Ubuntu

Configurando o acesso multiusuário PMou na instância Ubuntu

Publicado em 2024-08-28
Navegar:456

Setting Up PMor Multi-User Access on Ubuntu Instance

O gerenciamento de aplicativos Node.js em um servidor de produção geralmente requer um gerenciador de processos para garantir que seus aplicativos funcionem sem problemas e se recuperem automaticamente de falhas. PM2 é um dos gerenciadores de processos mais populares para Node.js, oferecendo recursos poderosos como monitoramento de processos, gerenciamento de logs e modo cluster.

Se você estiver executando um aplicativo em uma instância do Google Cloud Ubuntu, poderá encontrar uma situação em que os processos PM2 ficam visíveis apenas para o usuário que os iniciou. Isso pode ser problemático se o seu servidor tiver vários usuários, como desenvolvedores, administradores de sistema ou scripts de implantação automatizados. Nesta postagem do blog, percorreremos as etapas para configurar o PM2 como um serviço para todo o sistema, tornando-o acessível a todos os usuários no servidor.

Por que configurar o PM2 como um serviço para todo o sistema?

Por padrão, o PM2 é executado como um processo sob o usuário que o iniciou. Isso significa que se você usar SSH em seu servidor como um usuário e iniciar um processo PM2, esse processo não ficará visível para outro usuário que fizer login via SSH. Para resolver isso, podemos configurar o PM2 para funcionar como um serviço no nível do sistema. Esta abordagem tem várias vantagens:

  • Visibilidade do processo: Todos os usuários no servidor podem visualizar e gerenciar processos PM2.
  • Inicialização automática: PM2 será iniciado automaticamente na inicialização do sistema, garantindo que seus aplicativos estejam sempre em execução.
  • Gerenciamento Centralizado: Logs e estados de processos são centralizados, facilitando o gerenciamento de seus aplicativos.

Pré-requisitos

Antes de começarmos, certifique-se de ter o seguinte:

  1. Uma instância do Google Cloud Ubuntu.
  2. Node.js e npm instalados na instância.
  3. PM2 instalado globalmente.

Etapa 1: Instale o PM2 globalmente

Para garantir que todos os usuários possam acessar o PM2, ele deve ser instalado globalmente. Você pode instalar o PM2 globalmente usando npm:

sudo npm install -g pm2

Este comando instala o PM2 no diretório npm global, tornando-o disponível em todo o sistema.

Etapa 2: configurar o PM2 como um serviço para todo o sistema

Em seguida, precisamos configurar o PM2 para funcionar como um serviço. Isso permitirá que o PM2 gerencie processos no nível do sistema, em vez de ficar vinculado a uma sessão de usuário específica.

Execute o seguinte comando para gerar o script de inicialização necessário para PM2:

pm2 startup

Este comando detecta o sistema init usado pela sua instância Ubuntu (normalmente systemd) e fornece um comando que precisa ser executado com sudo para configurar o PM2 como um serviço de todo o sistema. A saída será semelhante a esta:

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u  --hp /home/

Aqui, deve ser substituído pelo nome de usuário do usuário que configurou inicialmente o PM2. Isso garante que o processo PM2 esteja vinculado ao diretório inicial do usuário correto.

Etapa 3: execute o comando gerado

Copie o comando fornecido na saída da etapa anterior e execute-o. Por exemplo:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe

Este comando cria um serviço systemd que inicia o PM2 com as variáveis ​​de ambiente e contexto de usuário corretos.

Etapa 4: salve a lista de processos PM2

Se você já possui processos em execução no PM2 que deseja persistir durante as reinicializações, será necessário salvar a lista de processos atual. Isso cria um arquivo de despejo que o PM2 usará para restaurar processos quando o sistema for iniciado:

pm2 save

O comando pm2 save salva a lista atual de processos gerenciados em um arquivo JSON em ~/.pm2/dump.pm2. Este arquivo é carregado automaticamente quando o PM2 é iniciado, garantindo que seus aplicativos sejam ressuscitados após uma reinicialização.

Etapa 5: Habilite o serviço PM2 para iniciar na inicialização

Para garantir que o PM2 seja iniciado automaticamente quando o sistema inicializar, você precisa habilitar o serviço:

sudo systemctl enable pm2-johndoe

Substitua johndoe pelo nome de usuário apropriado. Este comando habilita o serviço PM2, garantindo que ele seja iniciado sempre que o sistema for inicializado.

Etapa 6: Acessando PM2 com qualquer usuário

Agora que o PM2 está configurado como um serviço para todo o sistema, ele deve estar acessível a qualquer usuário no servidor. Para verificar o status dos processos ou listá-los, qualquer usuário pode executar:

pm2 list

Este comando exibirá a lista de processos gerenciados pelo serviço PM2 de todo o sistema, independentemente de qual usuário esteja logado.

Etapa 7: configuração adicional para logs compartilhados (opcional)

Se você precisar que os logs do PM2 sejam acessíveis por vários usuários, pode ser necessário ajustar as permissões do arquivo ou configurar o PM2 para armazenar logs em um diretório compartilhado. Isso garante que todos os usuários possam visualizar e gerenciar logs dos processos em execução no PM2.

Para alterar o diretório do arquivo de log, você pode usar a seguinte variável de ambiente:

export PM2_HOME=/path/to/shared/pm2/home

Defina isso em um arquivo de configuração global, como /etc/environment, para torná-lo persistente entre as sessões.

Etapa 8: Gerenciando processos PM2 entre usuários

Depois que o PM2 for configurado como um serviço, os usuários poderão gerenciar processos usando comandos PM2 padrão. No entanto, dependendo das permissões e funções do usuário, alguns comandos podem exigir acesso sudo. Por exemplo:

sudo pm2 list

Este comando listará os processos gerenciados pelo serviço PM2 em todo o sistema, facilitando a colaboração de administradores e desenvolvedores no gerenciamento do servidor.

Conclusão

Configurar o PM2 como um serviço para todo o sistema em sua instância Ubuntu garante que seus aplicativos Node.js sejam gerenciados de forma robusta e acessíveis a todos os usuários no servidor. Essa configuração é particularmente útil em ambientes com vários usuários ou processos de implantação automatizados, fornecendo uma maneira confiável e centralizada de gerenciar aplicativos.

Seguindo as etapas descritas neste guia, você pode garantir que o PM2 esteja disponível para todos os usuários, que seus processos sejam reiniciados automaticamente após a reinicialização do sistema e que os logs sejam facilmente acessíveis. Isso não apenas simplifica o gerenciamento do servidor, mas também aumenta a confiabilidade dos seus aplicativos em produção.

Boa codificação!

Declaração de lançamento Este artigo é reproduzido em: https://dev.to/manojspace/setting-pm2-for-multi-user-access-on-ubuntu-instance-5g95?1 Se houver alguma infração, entre em contato com o Study_Golang@163 .com para excluí -lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3