Хостинг: VPS
Віртуальний приватний сервер, відомий переважно як VPS, є віртуальною машиною, яка працює в хмарі, а користувачі мають повний контроль над її системою.
У цьому посібнику ви дізнаєтеся про різні методи запуску вашого бота на VPS, підтримання його в онлайні 24/7, автоматичний запуск при завантаженні вашого VPS і перезапуск при збоях.
systemd
systemd — це потужний менеджер служб, який передвстановлений у багатьох дистрибутивах Linux, переважно на основі Debian.
Отримання команди запуску
Отримайте повний шлях до вашого середовища виконання:
sh# Якщо ви використовуєте Deno which deno # Якщо ви використовуєте Node.js which node
1
2
3
4
5Ви також повинні мати повний шлях до файлу, який є точкою входу вашого застосунку.
Ваша команда запуску повинна виглядати наступним чином:
sh<повний-шлях-до-середовища-виконання> <параметри> <повний-шлях-до-файлу-входу> # Приклад для Deno: # /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts # Приклад для Node.js: # /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
1
2
3
4
5
6
7
Створення служби
Перейдіть до каталогу служб:
shcd /etc/systemd/system
1Відкрийте ваш новий файл служби за допомогою редактора:
shnano bot1.service
1Додайте наступний вміст:
txt[Service] ExecStart=<команда-запуску> Restart=on-failure [Install] WantedBy=multi-user.target
1
2
3
4
5
6Замініть
<команда
на команду, яку ви отримали вище. Також зверніть увагу, що якщо Deno встановлено для іншого користувача, а не root, вам може знадобитися додати-запуску> User
в розділі= <імʼя -користувача> [Service]
. Для отримання додаткової інформації про файли служб відвідайте цей сайт.Перезавантажуйте systemd кожного разу, коли ви редагуєте службу:
shsystemctl daemon-reload
1
Управління службою
Запуск
systemctl start <назва-служби>
Замініть
<назва
на назву файла служби, яку ви створили. Наприклад,-служби> systemctl start bot1
Запуск при завантаженні
systemctl enable <назва-служби>
Перегляд журналювання
systemctl status <назва-служби>
Перезавантаження
systemctl restart <назва-служби>
Зупинення
systemctl stop <назва-служби>
Вимкнення запуску при завантаженні
systemctl disable <назва-служби>
PM2 (тільки для Node.js)
PM2 — це менеджер демонів процесів для Node.js, який допоможе вам керувати та тримати ваш застосунок у режимі онлайн 24/7.
Встановлення
npm install pm2@latest -g
# Якщо ви використовуєте Yarn
yarn global add pm2
2
3
4
Управління застосунками
Старт
pm2 start --name <назва-застосунку> <файл-входу>
<назва
може бути будь-яким ідентифікатором для вашого застосунку: наприклад,-застосунку> bot1
.<файл
повинен бути шляхом до вашого файлу входу, який запускає вашого бота.-входу>
Перезапуск
Перезапуск застосунку передбачає його зупинку та повторний запуск.
pm2 restart <назва-застосунку>
Перезавантаження
Перезавантаження застосунку передбачає заміну поточного процесу вашого застосунку на новий, що призводить до відсутності перерви у роботі. Це рекомендується для застосунків, які не мають стану.
pm2 reload <назва-застосунку>
Зупинка
# Для одного застосунку
pm2 stop <назва-застосунку>
# Для всіх застосунків
pm2 stop all
2
3
4
5
Видалення
При видаленні ви зупиняєте ваш застосунок та видаляєте всі логи та метрики.
pm2 del <назва-застосунку>
Додаткова інформація
Для отримання додаткової інформації, будь ласка, відвідайте це посилання https://