Настройте агент для режима headless и автозапуска в Linux
Хотите подготовить свой Linux сервер к использованию Multilogin в headless режиме? Установите обе утилиты в качестве служб Systemd. Systemd — это менеджер служб для Linux, обрабатывающий такие задачи, как запуск и остановка служб во время запуска системы. Эта статья поможет вам настроить агент для этого способа.
Обратите внимание, что статья написана для Ubuntu. Другие дистрибутивы официально не поддерживаются.
Шаг 1: настройка Xvfb
Xvfb (X Virtual Framebuffer) — это сервер отображения, позволяющий графическим приложениям работать в средах без физического дисплея путем создания виртуального экрана в памяти. Он необходим для корректной работы агента.
- Открыть терминал.
- Создайте файл службы Xvfb через ввод следующий команды:
sudo nano /etc/systemd/system/xvfb.service - Добавьте содержимое в файл службы (и обязательно замените
YOUR_USERNAMEна ваше имя пользователя в операционной системе Linux):[Unit] Description=MLX XVFB After=network.target [Service] Type=simple User=YOUR_USERNAME ExecStart=/usr/bin/Xvfb :99 -screen 0 1920x1080x24 Restart=always [Install] WantedBy=multi-user.targetВ ExecStart мы настраиваем разрешение, количество дисплеев и каталог для Xvfb.
- Нажмите CTRL+X, затем Y и Enter, чтобы закрыть и сохранить.
Шаг 2: настройка агента для автоматического запуска
- Открыть терминал.
- Создайте файл службы Xvfb через ввод следующей команды:
sudo nano /etc/systemd/system/mlx.service - Добавьте содержимое в файл службы (и обязательно замените
YOUR_USERNAMEна ваше имя пользователя в операционной системе Linux):[Unit] Description=MLX Agent After=xvfb.service Requires=xvfb.service [Service] Type=simple User=YOUR_USERNAME Environment=HOME=/home/YOUR_USERNAME Environment=DISPLAY=:99 ExecStartPre=-/usr/bin/pkill -9 -f mlx ExecStartPre=-/bin/rm -f /home/YOUR_USERNAME/mlx/agent.lock /home/YOUR_USERNAME/mlx/profiles.lock /home/YOUR_USERNAME/mlx/launcher.lock ExecStart=/usr/bin/mlx Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.targetДавайте разберемся, что делает эта услуга:
В
[Unit]мы ожидаем завершения работы службы Xvfb, чтобы избежать ошибок отображения.
В разделе[Service]мы задаем пользователя, директории home и переменную отображения. Переменная отображения задается в службе агента, а не в Xvfb, иначе агент не смог бы ее использовать.
Затем с помощью команды ExecStartPre мы завершаем все оставшиеся процессы агента и удаляем файлы.lock— это полезно в случае перезапуска службы.ExectStart— это путь к исполняемому файлу агента в Linux . - Нажмите CTRL+X, затем Y и Enter, чтобы закрыть и сохранить.
Шаг 3: включите и загрузите службы
- Перезагрузить daemon (фоновую службу, которая загружает другие службы):
sudo systemctl daemon-reload - Включите агенты Xvfb и Multilogin X в качестве служб:
sudo systemctl enable xvfb.service mlx.service - Для запуска служб используйте
systemctl(утилиту управления системными службами):
Поздравляем! Теперь агент и Xvfb будут запускаться при загрузке операционной системы.sudo systemctl start xvfb.service sudo systemctl start mlx.service
Для управления службами используйте systemctl
Для проверки состояния служб используйте утилиту systemctl. Она может использоваться и для получения логов и устранения неполадок.
Проверить статус службы
Давайте получим статус сервиса с помощью:
sudo systemctl status xvfb.serviceВы увидите действия службы Xvfb. Вы также можете изменить xvfb.service на имя вашей службы, если оно отличается.
Выведите журналы
Выведите журналы действий службы с помощью команды journalctl:
journalctl -u mlx.serviceВы также можете ограничить количество строк. С помощью этой команды вы можете ограничить количество строк до 100:
journalctl -u mlx.service -n 100Вы также можете ограничить количество записей в журналах службы за определенный период времени. Вот команда для ограничения записей за последние 30 минут:
journalctl -u mlx.service --since "30 minutes ago"-f используется для отображения логов в реальном времени:
journalctl -u mlx.service -f