EQVPS
Anza

Weka bot ikiendesha 24/7 kwenye VPS (ili isife kimya kamwe)

Jun 15, 2026 · 2 min read · EQVPS Team

Kuna njia mbili ambazo bot "haifanyi kazi" kwenye seva. Ile ya wazi: inaacha sekunde unapofunga SSH. Ile ya kijanja: inaendesha vizuri kwa siku mbili, inaanguka saa 4 asubuhi kwa error fulani isiyoshughulikiwa, nawe unagundua masaa baadaye mtu anapouliza kwa nini iko down. Zote zina suluhu ileile, nayo si "kumbuka kuirestart" — ni kukabidhi kazi kwa systemd, ambayo huweka mambo juu ili wewe usilazimike.

Kwa nini inakufa unapoingia nje

Kama uliizindua na python bot.py katika kikao chako cha SSH, process ni child wa kikao hicho. Funga kikao, process inakwenda nayo. nohup na & hupaka juu ya hili, lakini hawakupi restart-kwenye-crash na start-kwenye-boot — hivyo umesuluhisha tatizo dogo na kuweka kubwa.

Suluhu halisi: huduma ya systemd

Hii ndio chose nzima. Unda /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

Mistari miwili inafanya kazi nzito:

Wakati bado inabadsahi — soma logs

Bot inayoendelea crash-loop hairekebishwi kwa kurestart kwa nguvu zaidi; kitu kimekwenda vibaya kweli. systemd hukamata stdout/stderr, hivyo:

systemctl status mybot          # juu au chini, exit code ya mwisho
journalctl -u mybot -n 100      # logs za hivi karibuni + error iliyoifanya ikufe
journalctl -u mybot -f          # fuata live

Sababu karibu daima iko pale pale: environment variable iliyokosekana, unhandled exception, API timeout, OOM kill. Rekebisha hiloRestart=always ni jal ya usalama, si tiba ya bug halisi.

Kidokezo: kama logs zinaonyesha bot ikiuawa kwa kumbukumbu, umezidi sanduku — angalia mwongozo wa sizing.

Wakati tmux au pm2 zinaleta maana badala yake

systemd si jibu pekee, ni chaguo-msingi bora tu:

Kwa bot moja ya kila wakati au agent, systemd ndiyo kitu rahisi zaidi kinachofanya kazi kweli — tayari iko kwenye seva, haihitaji tooling ya ziada, na hufanya restart, boot-start na logging out of the box.

Mstari wa chini wa uaminifu

Uptime si kuhusu seva kubwa zaidi au nidhamu zaidi — ni kuhusu kutounganisha process yako na laptop yako. Ilipiga katika systemd unit na Restart=always na enable, na angalia journalctl wakati kitu kimeenda vibaya. Fanya hilo mara moja na bot yako inabaki juu iwe unaangalia au umelala. (Sanduku jipya? Lifunge kwanza — bot ya 24/7 pia ni lengo la 24/7.)


Unahitaji mahali pa kuiendesha? Mpango wa Nano ($3/mwezi) huweka bot hai 24/7 — systemd hufanya mengine.

FAQ

Kwa nini bot yangu inaacha ninapofunga SSH?

Kwa sababu uliianzisha ndani ya kikao chako cha SSH, hivyo imefungwa kwa kikao hicho na inakufa unapodisconnect. Suluhu ni kuiendesha kama huduma ya background iliyo huru kutoka login yako — systemd ndiyo njia safi, tmux ndiyo njia ya haraka.

Ninaifanyaje bot iwe auto-restart inapoanguka?

Iendeshe kama huduma ya systemd na Restart=always na tuchelewesho kidogo cha RestartSec. systemd kisha huanzisha upya process ndani ya sekunde za crash yoyote, bila kikomo, bila kulea. Mstari huo mmoja ndiyo tofauti kati ya 'ilikufa saa 4 asubuhi' na 'ilipepesa na kupona.'

Ninaifanyaje bot ianze kiotomatiki baada ya reboot?

systemctl enable huduma yako. 'enable' huiunganisha kuanza kwenye boot, 'start' huiendesha sasa — fanya zote (systemctl enable --now). Baada ya reboot yoyote, bot inarudi yenyewe bila wewe kuingia.

systemd au pm2 au tmux — nitumie ipi?

systemd kwa chochote halisi na cha muda mrefu: hushughulikia restart, boot-start na logging kwa asili, hakuna tooling ya ziada. tmux ni bora kwa jaribio la haraka au kuangalia run ya interactive. pm2 ni ya busara kama unaishi katika Node na unataka dashboard yake, lakini ni kitu kingine cha kuweka kikiendesha. Kwa bot moja ya kila wakati, systemd inashinda kwa unyenyekevu.

Ninaonaje kwa nini bot yangu inaendelea kuanguka?

journalctl -u yourbot -n 100 huonyesha logs za hivi karibuni na error iliyoifanya ikufe; ongeza -f kufuata live. Hapa ndipo kwa kawaida sababu halisi hujificha — env var iliyokosekana, unhandled exception, API timeout. Rekebisha hilo, si tu restart kwa upofu.

← Back to blogSee plans & pricing →

Maoni

Bado hakuna maoni. Kuwa wa kwanza.

Acha maoni

Maoni yanakaguliwa kabla ya kuonekana.