Ботты фондық режимде іске қосу
Python немесе кез келген басқа бағдарламалау тілінде жазылған скрипттің серверде тұрақты әрі сенімді жұмыс істеуін қамтамасыз ету үшін оның автоматты түрде іске қосылуы мен қайта іске қосылуын баптау қажет.
Дайындық
1. Алдымен бот файлдарын серверге, мысалы, /home/me каталогына жүктеңіз. Содан кейін келесі командамен виртуалды орта жасаңыз:
python3 -m venv venv
2. Виртуалды ортаны белсендіріңіз:
source ./venv/bin/activate
3. requirements.txt файлында көрсетілген барлық қажетті пакеттерді орнатыңыз:
pip install -r requirements.txt
Егер пакеттер тізімі бар requirements.txt файлы жоқ болса, қажетті пакеттерді қолмен орнатуға болады.
Screen — қарапайым әдіс
Скриптті фондық режимде оңай іске қосу үшін терминалда шексіз сессия жасауға мүмкіндік беретін screen утилитасын пайдалануға болады.
Алдымен screen утилитасын репозиторийден орнатыңыз:
sudo apt install screen
Содан кейін жаңа сессияны мына командамен іске қосыңыз:
screen
Виртуалды ортаны белсендіріп, ботты келесі командалармен іске қосыңыз:
source ./venv/bin/activate
python main.py
Енді Ctrl + A пернелер тіркесімін басып тұрып, содан кейін D пернесін басу арқылы ағымдағы сессияны жасыруға болады.
screen-мен жұмыс істеуге арналған негізгі командалар:
- screen — жаңа сессия жасау;
- screen -ls — барлық сессиялардың тізімін қарау;
- screen -r <сессия_аты> — белгілі бір сессияны ашу (егер сізде бір ғана сессия болса, атын көрсетпеуге болады).
Сессияның ішінде:
- Ctrl + A + D — сессияны жасыру;
- Ctrl + A + K — сессияны аяқтау.
Бұл әдісті баптау өте оңай және қосымша конфигурациялық файлдар жасауды қажет етпейді. Алайда сервер қайта жүктелсе немесе скрипт жұмысында қате пайда болса, ботты қолмен қайта іске қосуға тура келеді.
Systemd
Енді қолданбаңызды Systemd арқылы қызмет ретінде іске қосуды қарастырайық. Systemd — Linux жүйесі мен қызметтерінің менеджері, ол конфигурациялық файлдарда анықталған қызметтерді тиімді басқарып, оларды іске қосады.
Алдымен systemd үшін келесі командамен жаңа юнит жасаңыз:
sudo nano /lib/systemd/system/bot.service
Жасалған юнитке келесі мазмұнды қосыңыз:
[Unit]
Description=Бот қызметі
After=network.target
[Service]
Type=idle
Restart=always
RestartSec=3
User=root
WorkingDirectory=/home/me/bot
ExecStart=/home/me/bot/venv/bin/python /home/me/bot/main.py
[Install]
WantedBy=multi-user.target
Мұнда:
- Description — қызметтің сипаттамасы,
- ExecStart — Python интерпретаторы мен скриптке апаратын жолды көрсетеді,
- User — қызмет қай пайдаланушының атынан іске қосылатынын анықтайды,
- Restart=always — қате пайда болғаннан кейін ботты қайта іске қосу қажеттігін көрсетеді.
Юниттерді қайта жүктеп, автоматты іске қосуды қосып және ботты белсендіріп, баптауды аяқтаңыз:
sudo systemctl daemon-reload
sudo systemctl enable bot.service
sudo systemctl start bot.service
Енді боттың жұмыс істеп тұрғанына көз жеткізіңіз. Егер қандай да бір себеппен бот жауап бермесе, ықтимал қателерді анықтау үшін оны терминалда іске қосып көруге болады.
PM2
Егер ботты іске қосудың тағы бір тәсілін қаласаңыз, PM2 процесс менеджерін пайдалана аласыз. PM2 қате болған жағдайда ботты автоматты түрде қайта іске қосады және оның жұмыс логтарын сақтайды.
Алдымен қажетті Node.js және npm пакеттерін келесі командалармен орнатыңыз:
sudo apt install nodejs
sudo apt install npm
Содан кейін PM2-ні мына командамен орнатыңыз:
npm install pm2 -g
Ботыңызды іске қосу үшін ол орналасқан каталогқа өтіп, келесі команданы орындаңыз:
pm2 start main.py --interpreter=python3
Енді сізде ботты іске қосудың екі жұмыс нұсқасы бар: Systemd арқылы және PM2 көмегімен. Әрқайсысының өз ерекшеліктері бар және әртүрлі пайдалану сценарийлеріне сәйкес келеді. Өз талаптарыңыз бен қалауыңызға сай келетінін таңдаңыз.