Как автоматически запускать агент Indigo
Если вам необходимо, чтобы агент Indigo запускался автоматически при каждой перезагрузке устройства, следуйте инструкциям для вашей операционной системы ниже.
Для работы агента Indigo требуется дисплей. Если в вашей системе нет физического дисплея, вам потребуется использовать виртуальный дисплей. Например, вы можете использовать xvfb-run
:
xvfb-run indigo
Windows
Следующий скрипт Python можно использовать для автоматического запуска агента Indigo в Windows. Вам нужно будет обеспечить запуск этого скрипта при старте системы, например, поместив его в папку автозагрузки Windows или создав Запланированное Задание.
Скрипт пытается динамически определить ваше имя пользователя для пути к агенту. Однако вы должны проверить переменную exe_path
в скрипте, чтобы она соответствовала фактическому месту установки agent.exe
для Indigo в вашей системе. Предполагается структура пути по умолчанию.
import os
import subprocess
def connect_agent():
username = os.getlogin()
# ВАЖНО: Убедитесь, что этот путь правильный для вашей установки Indigo.
# Имя пользователя подставляется динамически, но базовый путь 'AppData\\Local\\indigo\\agent.exe' может отличаться.
exe_path = f'C:\\Users\\{username}\\AppData\\Local\\indigo\\agent.exe'
print(f"Попытка запуска агента Indigo из: {exe_path}")
try:
# subprocess.run будет ждать завершения команды.
# Если agent.exe — это программа запуска, которая быстро завершается с кодом 0, это нормально.
# Если agent.exe — это основной длительно работающий процесс, .run() будет блокироваться до закрытия агента.
# Для фонового запуска subprocess.Popen может быть более подходящим.
# Исходный скрипт подразумевал проверку кода возврата, поэтому здесь используется .run().
agent_process = subprocess.run([exe_path], capture_output=True, text=True, check=False)
if agent_process.returncode == 0:
print("Агент Indigo успешно запущен.")
# Опционально можно вывести stdout, если агент предоставляет полезную информацию при запуске:
# if agent_process.stdout:
# print(f"Вывод агента: {agent_process.stdout.strip()}")
else:
print(f"Не удалось запустить агент Indigo. Код возврата: {agent_process.returncode}")
if agent_process.stderr:
print(f"Детали ошибки: {agent_process.stderr.strip()}")
if agent_process.stdout: # Также логируем stdout в случае ошибки, может содержать информацию
print(f"Вывод (stdout): {agent_process.stdout.strip()}")
except FileNotFoundError:
print(f"Ошибка: Исполняемый файл агента Indigo не найден по пути '{exe_path}'. Пожалуйста, проверьте путь.")
except Exception as e:
print(f"Произошла непредвиденная ошибка: {e}")
if __name__ == "__main__":
connect_agent()