Рейтинг:0

Запустить службу после запуска всех служб обработки http

флаг cn

Я некоторое время ломал голову над этим, и мне удалось уточнить мою проблему до одной проблемы. У меня есть служба, которая должна запускать сценарий оболочки для запуска процессов демона (с использованием nohup), эти процессы представляют собой боты раздора, написанные с использованием nodejs и discordjs. В настоящее время у меня есть служба, которая запускает тестового бота разногласий, когда я запускаю его с помощью sudo systemctl запустить startdiscordbots и это работает нормально. Проблема в том, что когда я перезагружаю компьютер, служба выдает следующую ошибку:

/daemons/discordbots/discounter/node_modules/discord.js/src/rest/RequestHandler.js:172
31 августа 13:35:15 ubuntu start.sh[2459]: выдать новую HTTPError(error.message, error.constructor.name, error.status, request);
31 августа 13:35:15 ubuntu start.sh[2459]: ^
31 августа 13:35:15 ubuntu start.sh[2459]: HTTPError [FetchError]: запрос на https://discord.com/api/v9/gateway/bot не удался, причина: getaddrinfo EAI_AGAIN discord.com
31 августа 13:35:15 ubuntu start.sh[2459]: в RequestHandler.execute (/daemons/discordbots/discounter/node_modules/discord.js/src/rest/RequestHandler.js:172:15)
31 августа 13:35:15 ubuntu start.sh[2459]: at processTicksAndRejections (узел: внутренний/процесс/task_queues:96:5)
31 августа 13:35:15 Ubuntu start.sh[2459]: at async RequestHandler.push (/daemons/discordbots/discounter/node_modules/discord.js/src/rest/RequestHandler.js:50:14)
31 августа 13:35:15 ubuntu start.sh[2459]: at async WebSocketManager.connect (/daemons/discordbots/discounter/node_modules/discord.js/src/client/websocket/WebSocketManager.js:128:9)
31 августа 13:35:15 Ubuntu start.sh[2459]: at async Client.login (/daemons/discordbots/discounter/node_modules/discord.js/src/client/Client.js:245:7) {
31 августа 13:35:15 ubuntu start.sh[2459]: код: 500,
31 августа 13:35:15 ubuntu start.sh[2459]: метод: 'получить',
31 августа 13:35:15 ubuntu start.sh[2459]: путь: '/шлюз/бот',
31 августа 13:35:15 Ubuntu start.sh [2459]: requestData: { json: undefined, files: [] }
31 августа 13:35:15 Ubuntu start.sh[2459]: }

Итак, я знаю, что служба запускается нормально, как только все остальные службы были загружены правильно, но я предполагаю, что есть служба, которую мне нужно поместить в После= часть файла startdiscordbots.service, которую я пропустил, мой startdiscordbots.service код ниже

[Ед. изм]
Description=Запуск ботов разногласий в качестве фоновых процессов

After=network.target systemd-user-sessions.service

[Оказание услуг]
Тип=простой
ExecStart=/startup/start.sh
Перезапуск = при сбое
Рестартсек=5
KillMode=процесс
Пользователь=убунту

[Установить]
WantedBy=многопользовательская.цель

Кто-нибудь знает, есть ли служба, которую мне нужно указать в После= что я пропустил или что-то еще происходит?

Я использую компьютер RaspberryPi с установленным Ubuntu Server, я использую node v16.8.0 и npm v7.21.0 с discordjs v13.1.0. У меня есть доступ только к терминалу, поэтому, пожалуйста, не давайте ответов, говорящих мне использовать другие инструменты.

Любая помощь будет потрясающей!

waltinator avatar
флаг it
Вы смотрите не на то, это не услуга. Вы хотите подождать, пока не будет установлено подключение к сети. Только тогда вы сможете получить доступ к вещам по сети.
Bobcat33 avatar
флаг cn
@waltinator Как мне это сделать? Кажется, я придумал решение (добавив `After=multi-user.target`), но я не уверен, как долго оно продлится...
Рейтинг:1
флаг it

Напишите функцию, которая блокируется, пока сеть не заработает, выполняет другие тесты (есть ли По умолчанию маршрут (man ip ip-маршрут), ты можешь хост google.com (мужчина-хозяин) и т. д., а затем запускает свои службы. Я написал скрипт bash, чтобы помочь с этим: https://github.com/waltinator/net-o-matic Он наблюдает за соединением и, когда соединение обрывается, выполняет указанные пользователем действия, пытаясь восстановить соединение. Маленький бить знания позволят вам изменить это. Читать человек.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.