在Linux中配置代理以headless模式自动启动。
想让您的Linux服务器在无头模式下使用Multilogin吗?将这两个工具都配置为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]中,我们设置了用户、主目录变量和显示变量。显示变量是在代理服务中设置的,而不是在XVFB中设置的,否则代理服务器将无法使用它。
然后,使用ExecStartPre终止所有剩余的代理进程并删除.lock文件,这在服务重新启动时非常有用。ExectStart是Linux中代理二进制文件的路径。 - 按CTRL+X,然后按Y和Enter键关闭并保存
步骤3:启用并加载服务
- 重新加载守护进程(后台服务,用于加载其他服务):
sudo systemctl daemon-reload - 启用Xvfb和MultiloginX代理作为服务:
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 service命令获取服务日志:
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