Discord బాట్: ప్రారంభం మరియు మానిటరింగ్
systemd కింద VPS పై Discord బాట్ నడపడం, మెమరీని పరిమితం చేయడం, లాగ్లు చదవడం, రేట్ లిమిట్లను ఎదుర్కోవడం మరియు డౌన్టైమ్ లేకుండా అప్డేట్ చేయడం.
23 ఆగస్టు, 2026న నవీకరించబడింది
Discord బాట్ Discord గేట్వేకు నిరంతర WebSocket కనెక్షన్ను కలిగి ఉంటుంది, కాబట్టి దానికి ఎప్పుడూ ఆన్లో ఉండే మెషిన్ అవసరం. దాని వనరుల అవసరాలు తక్కువే, కానీ Telegram బాట్లా కాకుండా ఇది రీస్టార్ట్లను తక్కువగా భరిస్తుంది: ప్రతి రీస్టార్ట్ గేట్వేకు కొత్త కనెక్షన్ను బలవంతం చేస్తుంది.
ఇన్స్టాలేషన్
useradd -r -m -d /srv/dbot -s /usr/sbin/nologin dbot
cd /srv/dbot && sudo -u dbot git clone https://github.com/you/bot.git .
sudo -u dbot npm ci --omit=dev
install -o dbot -g dbot -m 600 /dev/null /srv/dbot/.env
టోకెన్ మరియు IDలను .envలో ఉంచండి. Discord Developer Portal నుండి తీసుకున్న టోకెన్ బాట్పై పూర్తి యాక్సెస్ — దాన్ని పాస్వర్డ్లా పరిగణించండి.
Python లైబ్రరీల కోసం విధానం అదే, వర్చువల్ ఎన్విరాన్మెంట్తో; Python యాప్ చూడండి.
సర్వీస్
/etc/systemd/system/dbot.service:
[Unit]
Description=Discord bot
After=network-online.target
Wants=network-online.target
[Service]
User=dbot
WorkingDirectory=/srv/dbot
EnvironmentFile=/srv/dbot/.env
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=15
MemoryMax=512M
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now dbot
ప్రామాణిక ఐదు సెకన్లకు బదులుగా RestartSec=15: గేట్వేకు కనెక్షన్ పోయినప్పుడు, తరచుగా జరిగే రీస్టార్ట్లు Discord వైపు నుండి కనెక్షన్లపై తాత్కాలిక బ్లాక్కు దారితీస్తాయి.
MemoryMax మెమొరీ లీక్ ఉన్న బాట్ మొత్తం మెషిన్ను తనతోపాటు కిందకు లాగకుండా కాపాడుతుంది — ముఖ్యంగా 2 GB ఉన్న VDS-1లో ఇది చాలా ముఖ్యం.
మానిటరింగ్
systemctl status dbot
journalctl -u dbot -f
journalctl -u dbot --since today -p err
systemctl show dbot -p NRestarts
NRestarts అత్యంత ఉపయోగకరమైన మెట్రిక్: ప్రతి గంటకు కౌంటర్ పెరుగుతుంటే, బాట్ క్రాష్ అవుతోంది మరియు Restart=always దాన్ని కప్పిపుచ్చుతోంది.
నిర్దిష్ట సర్వీస్ మెమొరీ వినియోగం:
systemctl status dbot | grep Memory
మెషిన్ మొత్తం చిత్రం కోసం, /hosting/vds/m/<id> వద్ద ఉన్న ప్యానెల్లోని “Overview”లో CPU, మెమొరీ మరియు ట్రాఫిక్ గ్రాఫ్లను చూడండి.
రేట్ లిమిటింగ్
Discord API కాల్స్కు రేట్ లిమిట్ విధిస్తుంది. లక్షణాలు లాగ్లలో 429 ఎర్రర్లు మరియు “ఇరుక్కుపోయే” కమాండ్లు. సహాయపడేవి:
- విరామాలు లేకుండా లూప్లో మెసేజ్లు పంపకండి;
- కొత్తవి పంపే బదులు ఒకే మెసేజ్ను ఎడిట్ చేయండి;
- ప్రతి ఈవెంట్కు అభ్యర్థించే బదులు రిఫరెన్స్ డేటాను క్యాష్ చేయండి;
- బల్క్ బ్రాడ్కాస్ట్ల కోసం Redis క్యూను ఉపయోగించండి.
అప్డేటింగ్
cd /srv/dbot
sudo -u dbot git pull
sudo -u dbot npm ci --omit=dev
systemctl restart dbot
journalctl -u dbot -n 50
చివరి లైన్ తప్పనిసరి: బాట్ కొత్త డిపెండెన్సీపై క్రాష్ అవ్వకుండా గేట్వేకు కనెక్ట్ అయిందని నిర్ధారించుకోండి.
సాధారణ ఎర్రర్లు
| లక్షణం | కారణం |
|---|---|
| బాట్ ఆన్లైన్లో ఉంది కానీ కమాండ్లకు స్పందించదు | Developer Portalలో అవసరమైన ఇంటెంట్లు ఎనేబుల్ చేయలేదు |
| నిరంతర రీకనెక్ట్లు | RestartSec చాలా తక్కువ, లేదా ఈవెంట్ హ్యాండ్లర్లో క్రాష్ |
Invalid token | టోకెన్ రీజెనరేట్ చేయబడింది మరియు .env అప్డేట్ చేయలేదు |
| కమాండ్లు డూప్లికేట్ అవుతున్నాయి | బాట్ యొక్క రెండు కాపీలు నడుస్తున్నాయి — ps aux | grep node తనిఖీ చేయండి |
| మెషిన్ స్వాపింగ్ ప్రారంభించింది | MemoryMax లేదు, కోడ్లో లీక్ ఉంది |
బాట్ను
screenలేదాtmuxకింద నడపకండి. SSH డిస్కనెక్ట్ను సెషన్ తట్టుకుంటుంది, కానీ మెషిన్ రీబూట్ను కాదు — మరియు ఒక నెలలో అది ఎక్కడ నడుస్తోందో మీరే మర్చిపోతారు.