Puncte:0

Porniți serviciul după ce au început toate serviciile de manipulare http

drapel cn

M-am încurcat cu acesta de ceva vreme și am reușit să-mi rafinam problema la o singură problemă. Am un serviciu care ar trebui să ruleze un script shell pentru a porni procesele demon (folosind nohup), aceste procese sunt roboți Discord scrise folosind nodejs și discordjs. În prezent, am un serviciu care pornește botul Discord de testare când îl rulez folosind sudo systemctl start startdiscordbots si asta merge bine. Problema este că atunci când repornesc computerul, serviciul afișează eroarea de mai jos:

/daemons/discordbots/discounter/node_modules/discord.js/src/rest/RequestHandler.js:172
Aug 31 13:35:15 ubuntu start.sh[2459]: aruncă o nouă HTTPError (error.message, error.constructor.name, error.status, request);
31 august 13:35:15 ubuntu start.sh[2459]: ^
31 august 13:35:15 ubuntu start.sh[2459]: HTTPError [FetchError]: cererea către https://discord.com/api/v9/gateway/bot a eșuat, motiv: getaddrinfo EAI_AGAIN discord.com
31 august 13:35:15 ubuntu start.sh[2459]: la RequestHandler.execute (/daemons/discordbots/discounter/node_modules/discord.js/src/rest/RequestHandler.js:172:15)
31 august 13:35:15 ubuntu start.sh[2459]: la processTicksAndRejections (nod:intern/process/task_queues:96:5)
31 august 13:35:15 ubuntu start.sh[2459]: la asincron RequestHandler.push (/daemons/discordbots/discounter/node_modules/discord.js/src/rest/RequestHandler.js:50:14)
31 august 13:35:15 ubuntu start.sh[2459]: la WebSocketManager.connect asincron (/daemons/discordbots/discounter/node_modules/discord.js/src/client/websocket/WebSocketManager.js:128:9)
31 august 13:35:15 ubuntu start.sh[2459]: la async Client.login (/daemons/discordbots/discounter/node_modules/discord.js/src/client/Client.js:245:7) {
31 august 13:35:15 ubuntu start.sh[2459]: cod: 500,
31 august 13:35:15 ubuntu start.sh[2459]: metoda: „obține”,
31 august 13:35:15 ubuntu start.sh[2459]: cale: „/gateway/bot”,
31 august 13:35:15 ubuntu start.sh[2459]: requestData: { json: undefined, fișiere: [] }
31 august 13:35:15 ubuntu start.sh[2459]: }

Deci știu că serviciul începe bine odată ce toate celelalte servicii au fost încărcate corect, dar bănuiesc că există un serviciu pe care trebuie să îl pun în După= parte din fișierul startdiscordbots.service pe care l-am ratat, al meu startdiscordbots.service codul este mai jos

[Unitate]
Description=Porniți roboții Discord ca procese de fundal

După=network.target systemd-user-sessions.service

[Serviciu]
Tip=simplu
ExecStart=/startup/start.sh
Restart=la eșec
RestartSec=5
KillMode=proces
Utilizator=ubuntu

[Instalare]
WantedBy=multi-user.target

Știe cineva dacă există un serviciu pe care trebuie să-l precizez în După= că am ratat-o ​​sau se întâmplă altceva?

Computerul pe care îl folosesc este un RaspberryPi cu Ubuntu Server instalat, folosesc nodul v16.8.0 și npm v7.21.0 cu discordjs v13.1.0. Am acces doar la terminal, așa că vă rog să nu dați răspunsuri spunându-mi să folosesc alte instrumente.

Orice ajutor ar fi uimitor!

waltinator avatar
drapel it
Te uiți la lucru greșit, nu este un serviciu. Doriți să așteptați până când conexiunea la rețea este stabilită. Numai atunci, puteți ajunge la lucruri prin rețea.
Bobcat33 avatar
drapel cn
@waltinator Cum aș face asta? Se pare că am venit cu o soluție (prin adăugarea „After=multi-user.target”), dar nu sunt sigur cât va dura...
Puncte:1
drapel it

Scrieți o funcție care se blochează până când rețeaua este deschisă, face alte teste (există un Mod implicit traseu (man ip ip-rută), poti tu gazduieste google.com (om gazdă), etc., apoi vă pornește serviciile. Am scris un script bash pentru a ajuta cu asta: https://github.com/waltinator/net-o-matic Urmărește conexiunea și, atunci când conexiunea se întrerupe, face un lucru specificat de utilizator pentru a încerca să se reconecteze. Putin bash cunoștințele vă vor permite să modificați acest lucru. Citit man bash.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.