Запуск приложений и команд с помощью терминального окна

Вопрос или проблема

Я хочу, чтобы команды запускались при старте системы, чтобы загружать мои Discord боты, когда сервер включается. Мне удалось настроить это благодаря ответу Лассе на этот вопрос, однако как сделать так, чтобы окна терминала были видны в графическом интерфейсе пользователя? После входа в систему команды выполняются и боты запускаются, но я не могу видеть командную строку, чтобы либо диагностировать проблемы, либо остановить бота для его обновления.

Моя текущая команда

/bin/bash -c "sleep 15 && cd /home/wildfyr/Desktop/bot && source -/home/wildfyr/Desktop/bot/bin/activate && redbot fyrbot"

Я немного порылся на форумах и нашел только этот пост о запуске терминала при входе в систему, но ничего о запуске существующих команд в собственных окнах терминала

Я использую Ubuntu 24.04.

.

Ответ или решение

Для успешного запуска команд на старте системы с открытием терминального окна, чтобы управлять вашими Discord-ботами, работающими на Ubuntu 24.04, можно воспользоваться одним из следующих методов:

1. Использование системных служб (systemd)

Если вы уже используете systemd для запуска ботов, можно настроить запуск отдельных терминальных окон для каждой команды. Однако это потребует написания небольшого скрипта.

Настройка вашего сервиса:

  1. Создать Bash-скрипт:
    Создайте скрипт, который запустит ваш бот в терминале:

    #!/bin/bash
    gnome-terminal -- bash -c "cd /home/wildfyr/Desktop/bot && source /home/wildfyr/Desktop/bot/bin/activate && redbot fyrbot; exec bash"

    Сохраните этот скрипт, например, как start_bot.sh в вашем домашнем каталоге.

  2. Изменить systemd-сервис:
    Измените ваш systemd-сервис для вызова этого скрипта:

    [Unit]
    Description=Start Discord Bot
    
    [Service]
    ExecStart=/bin/bash /path/to/your/start_bot.sh
    WorkingDirectory=/home/wildfyr/Desktop/bot
    User=wildfyr
    Type=simple
    
    [Install]
    WantedBy=default.target
  3. Обновление и запуск сервиса:
    Перезагрузите и запустите сервис с помощью команд:

    sudo systemctl daemon-reload
    sudo systemctl enable your_service_name
    sudo systemctl start your_service_name

2. Использование автозагрузки GUI

Если вы предпочитаете запуск через GUI, можно воспользоваться функцией "Программы автозапуска":

  1. Графический метод:
    • Перейдите в "Программы автозапуска" через настройки.
    • Добавьте новую запись:
      • Имя: Запуск ботов
      • Команда: /bin/bash -c "gnome-terminal -- bash -c 'cd /home/wildfyr/Desktop/bot && source /home/wildfyr/Desktop/bot/bin/activate && redbot fyrbot; exec bash'"

Заключение

Эти методы позволят вам запускать ваши Discord-боты в терминальных окнах на старте системы, что облегчит отладку и управление ими. При этом применение каждого способа зависит от ваших предпочтений и окружения рабочего стола, поэтому выбирайте наиболее подходящий для вас. Удачи в автоматизации ваших задач и успешной работе с ботами на Ubuntu!

Оцените материал
Добавить комментарий

Капча загружается...