EQVPS

یو bot په یوه VPS ۲۴/۷ روان وساتئ (نو هیڅکله په ارامۍ ونه مري)

Jun 15, 2026 · 3 دقیقې لوستل · EQVPS Team

دوه لارې شته چې یو bot په یوه سرور «کار نه کوي». څرګنده یې: دا هغه ثانیه درولوي چې تاسو SSH بندوئ. پټه یې: دا د دوو ورځو لپاره ښه چلیږي، د سهار په ۴ بجو په یوه غیر-اداره شوي تیروتنه crash کوي، او تاسو ساعتونه وروسته پوهیږئ کله چې یو څوک وپوښتي چې ولې کوز دی. دواړه همدا حل لري، او دا «یاد ولره چې بیا یې پیل کړه» نه دی — دا دنده systemd ته سپارل دي، چې شیان پورته ساتي نو تاسو یې ونه ساتئ.

ولې دا مري کله چې تاسو ووځئ

که تاسو دا د python bot.py سره ستاسو په SSH سیشن پیل کړ، پروسس د هغه سیشن یو ماشوم دی. سیشن بند کړئ، پروسس ورسره ځي. nohup او & دا پټوي، خو تاسو ته هیڅ په-crash-بیا-پیل او هیڅ په-boot-پیل نه درکوي — نو تاسو کوچنۍ ستونزه حل کړه او لویه مو وساتله.

ریښتینی حل: یو systemd خدمت

دا ټول شی دی. /etc/systemd/system/mybot.service جوړ کړئ:

[Unit]
Description=My bot
After=network-online.target

[Service]
WorkingDirectory=/home/youruser/mybot
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser
Environment=API_KEY=...

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mybot

دوه کرښې درنه کار کوي:

کله چې دا لا بد چلند کوي — logونه ولولئ

یو bot چې crash-loop کولو ته دوام ورکوي په سخت بیا پیل سره نه سمیږي؛ یو څه واقعاً غلط دي. systemd stdout/stderr نیسي، نو:

systemctl status mybot          # up or down, last exit code
journalctl -u mybot -n 100      # recent logs + the error it died on
journalctl -u mybot -f          # follow live

لامل نږدې تل همدلته دی: یو ورک شوی چاپیریال متغیر، یو غیر-اداره شوی استثنا، یو API timeout، یو OOM kill. هغه سم کړئ — Restart=always یو د خوندیتوب جال دی، نه د یوه ریښتیني bug درمل.

لارښوونه: که logونه ښیي چې bot د حافظې لپاره وژل کیږي، تاسو box ماتولی — د اندازه‌کولو لارښود وګورئ.

کله چې tmux یا pm2 پرځای معنی لري

systemd یوازینی ځواب نه دی، یوازې غوره ډیفالټ:

د یوه واحد تل-فعال bot یا اجنټ لپاره، systemd ترټولو ساده شی دی چې واقعاً کار کوي — دا لا دمخه په سرور دی، هیڅ اضافي وسیلې ته اړتیا نلري، او بیا پیل، په-boot-پیل او logging له بکس څخه کوي.

ریښتینی کتاکلی

اپټایم د یوه لوی سرور یا نور نظم په اړه نه دی — دا د دې په اړه دی چې خپل پروسس خپل laptop سره ونه تړئ. دا په یوه systemd unit کې د Restart=always او enable سره ونغاړئ، او کله چې یو څه ناسم وي journalctl وګورئ. دا یو ځل وکړئ او ستاسو bot پورته پاتې کیږي که تاسو ګورئ که ویده یاست. (نوی box؟ لومړی یې قفل کړئ — یو ۲۴/۷ bot یو ۲۴/۷ هدف هم دی.)


د چلولو لپاره یو ځای ته اړتیا لرئ؟ یو Nano پلان ($3/میاشت) یو bot ۲۴/۷ ژوندی ساتي — systemd پاتې کوي.

پوښتنې

ولې زما bot درولوي کله چې زه SSH بندوم؟

ځکه چې تاسو یې ستاسو په SSH سیشن دننه پیل کړ، نو دا هغه سیشن سره تړل شوی او مري کله چې تاسو نه‌نښلئ. حل دا دی چې دا د یوه شاليد خدمت په توګه وچلوئ چې ستاسو له ننوتلو خپلواک وي — systemd پاکه لاره ده، tmux چټکه لاره ده.

زه څنګه یو bot اتوماتیک-بیا پیل کړم کله چې crash کوي؟

دا د یوه systemd خدمت په توګه د Restart=always او یو کوچني RestartSec ځنډ سره وچلوئ. systemd بیا پروسس د هر crash په ثانیو کې بیا پیلوي، بې پایه، د هیڅ ماشوم‌ساتنې پرته. هغه یوه کرښه د «د سهار په ۴ بجو مړ شو» او «یو ټکان یې وخوړ او بیرته راغی» ترمنځ توپیر دی.

زه څنګه یو bot د یوه بیا پیل وروسته په اتوماتیک ډول پیل کړم؟

خپل خدمت systemctl enable کړئ. «enable» یې په boot پیلولو ته سیموي، «start» یې اوس چلوي — دواړه وکړئ (systemctl enable --now). د هر بیا پیل وروسته، bot پخپله بیرته راځي بې د ستاسو د ننوتلو.

systemd یا pm2 یا tmux — کوم یو باید وکاروم؟

systemd د هر ریښتیني او اوږد-عمره شي لپاره: دا بیا پیل، په-boot-پیل او logging په اصلي توګه اداره کوي، هیڅ اضافي وسیله نشته. tmux د یوې چټکې ازموینې یا د یوه تعاملي چلولو کتلو لپاره عالي دی. pm2 معقول دی که تاسو په Node کې اوسیږئ او د هغه ډشبورډ غواړئ، خو دا یو بل شی دی چې روان یې وساتئ. د یوه واحد تل-فعال bot لپاره، systemd په سادګۍ ګټي.

زه څنګه وګورم چې زما bot ولې crash کوي؟

journalctl -u yourbot -n 100 وروستي logونه او هغه تیروتنه ښیي چې پرې مړ شو؛ د ژوندي تعقیب لپاره -f اضافه کړئ. دا معمولاً هغه ځای دی چیرته چې ریښتینی لامل پټ دی — یو ورک شوی env var، یو غیر-اداره شوی استثنا، یو API timeout. هغه سم کړئ، یوازې په ړوند ډول بیا پیل مه کوئ.

← بلاګ ته بیرتهپلانونه او بیې وګورئ →

تبصرې

لا تبصرې نشته. لومړی اوسئ.

یوه تبصره پریږدئ

تبصرې د ښکاره کیدو مخکې اعتدال کیږي.