Configure o agente para o modo headless e inicialização automática no Linux
Deseja preparar seu servidor Linux para usar Multilogin no modo headless? Configure ambos os utilitários como serviços do Systemd. O Systemd é um gerenciador de serviços para Linux, responsável por tarefas como iniciar e parar serviços durante a inicialização. Este artigo irá guiá-lo na configuração do agente para este caso de uso.
Lembre-se de que este artigo foi escrito para o Ubuntu. As outras distribuições não são oficialmente suportadas.
Passo 1: configurar o XVFB
O Xvfb (X Virtual Framebuffer) é um servidor de exibição que permite que aplicativos gráficos sejam executados em ambientes sem um monitor físico, criando uma tela virtual na memória. Ele será necessário para que o agente funcione conforme o esperado.
- Terminal aberto
- Crie o arquivo de serviço XVFB e digite o seguinte comando:
sudo nano /etc/systemd/system/xvfb.service - Adicione o conteúdo ao arquivo de serviço (e certifique-se de substituir
SEU_USUARIOpelo seu nome de usuário no sistema Linux):[Unit] Description=MLX XVFB After=network.target [Service] Type=simple User=SEU_USUARIO ExecStart=/usr/bin/Xvfb :99 -screen 0 1920x1080x24 Restart=always [Install] WantedBy=multi-user.targetNo ExecStart, configuramos a resolução, o número de monitores e o diretório para o XVFB.
- Pressione CTRL+X, depois Y e Enter para fechar e salvar.
Etapa 2: configurando o agente para inicialização automática
- Abra o terminal
- Crie o arquivo de serviço MLX e digite o seguinte comando:
sudo nano /etc/systemd/system/mlx.service - Adicione o conteúdo ao arquivo de serviço (e certifique-se de substituir
SEU_USUARIOpelo seu nome de usuário no sistema Linux):[Unit] Description=MLX Agent After=xvfb.service Requires=xvfb.service [Service] Type=simple User=YOUR_USERNAME Environment=HOME=/home/SEU_USUARIO Environment=DISPLAY=:99 ExecStartPre=-/usr/bin/pkill -9 -f mlx ExecStartPre=-/bin/rm -f /home/SEU_USUARIO/mlx/agent.lock /home/SEU_USUARIO/mlx/profiles.lock /home/SEU_USUARIO/mlx/launcher.lock ExecStart=/usr/bin/mlx Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.targetVamos entender o que esse serviço faz:
Em
[Unit], aguardamos o serviço XVFB para não corrermos o risco de obter erros de exibição.
Em[Service], definimos o usuário, a variável home e a variável display. A variável display é definida no serviço do agente e não no XVFB, caso contrário o agente não seria capaz de usá-la.
Em seguida, com o ExecStartPre, encerramos quaisquer processos de agente restantes e excluímos os arquivos.lock. Isso é útil caso o serviço seja reiniciado.ExectStarté o caminho para o binário do agente no Linux . - Pressione CTRL+X, depois Y e Enter para fechar e salvar.
Etapa 3: habilite e carregue os serviços
- Recarregue o daemon (um serviço em segundo plano que carrega os outros serviços):
sudo systemctl daemon-reload - Habilite o XFVB e o agente Multilogin X como serviços:
sudo systemctl enable xvfb.service mlx.service - Utilize
systemctl(uma ferramenta utilitária usada para gerenciar serviços do sistema) para iniciar os serviços:
Parabéns! Agora o agente e o XVFB serão iniciados durante a inicialização do sistema operacional.sudo systemctl start xvfb.service sudo systemctl start mlx.service
Utilize o systemctl para gerenciar serviços.
Utilize o utilitário systemctl para verificar o status do serviço. Você pode usá-lo para obter registros e solucionar problemas.
Verificar o status do serviço
Vamos verificar o status do serviço com:
sudo systemctl status xvfb.serviceVocê verá as ações do serviço XVFB. Você também pode alterar xvfb.service para o nome do seu serviço, caso seja diferente.
Obter registros
Obtenha os registros de serviço com o comando journalctl service:
journalctl -u mlx.serviceVocê também pode limitar por quantidade de linhas. Com este comando, você pode limitar as linhas a até 100 :
journalctl -u mlx.service -n 100Você também pode limitar os registros de serviço a um determinado período. Aqui está o comando para limitar os registros aos últimos 30 minutos :
journalctl -u mlx.service --since "30 minutes ago"-f é usado para exibir registros em tempo real:
journalctl -u mlx.service -f