Добавить в автозапуск Node.js проект очень просто
Настроить автоматический запуск вашего Node.js приложения при старте сервера Debian 12 не сложно. Мы будем использовать NVM (Node Version Manager) для удобного управления версиями Node.js и PM2 для управления процессом вашего приложения и обеспечения его автозапуска.
Предварительные условия:
- Права sudo: Вы можете выполнять команды с sudo.
- NVM установлен: Node.js установлен через NVM для вашего пользователя.
- PM2 установлен глобально: npm install -g pm2 для вашего пользователя.
- Рабочий Node.js проект: У вас есть готовый Node.js проект, который можно запустить (например, файл app.js или server.js).
- Путь к проекту: Вы знаете полный путь к каталогу вашего Node.js проекта.
Шаг 1: Подготовьте ваше приложение к запуску с PM2
- Войдите в систему под вашим обычным пользователем
- Перейдите в каталог вашего Node.js проекта:
cd /web/ваш_домен/каталог_вашего_проекта
- Запустите ваше приложение с помощью PM2:
pm2 start app.js --name "my_app"
- Замените app.js на имя вашего главного файла приложения если нужно (например, server.js, index.js).
- — name «имя_вашего_проекта» — это псевдоним для вашего приложения в PM2, который облегчает управление им. Выберите осмысленное имя.
-
- Пример:
pm2 start app.js --name "my_app" -i max
(Если app.js — это ваш основной файл)
- Пример:
- Проверьте, что приложение запущено:
pm2 list
Вы должны увидеть ваше приложение в списке со статусом online.
Шаг 2: Настройка автозапуска с помощью PM2
Теперь, когда ваше приложение работает под PM2, нужно настроить PM2 так, чтобы он запускал его при каждом старте системы.
- Сгенерируйте скрипт автозапуска systemd: Выполните эту команду из любого каталога. PM2 автоматически определит, что ваша система использует systemd.
pm2 startup systemd
- Скопируйте и выполните предложенную команду: pm2 startup systemd выдаст вам команду, которую необходимо выполнить с правами суперпользователя (sudo). Эта команда настроит PM2 для запуска от имени вашего пользователя и с правильной версией Node.js, установленной через NVM.
-
- Пример команды, которую вы увидите:
sudo env PATH=$PATH:/home/ваш_домен/.nvm/versions/node/v_версия_nodejs/bin /home/ваш_домен/.nvm/versions/node/v_версия_nodejs/lib/node_modules/pm2/bin/pm2 startup systemd -u ваш_пользователь --hp /home/ваш_домен
Очень важно: Убедитесь, что вы копируете и выполняете именно ту команду, которую выдал ваш pm2 startup systemd, поскольку пути и версии могут отличаться.
- Выполнение команды: Вставьте скопированную команду в терминал и нажмите Enter. Возможно, вас попросят ввести пароль вашего пользователя.
- Пример команды, которую вы увидите:
-
- Сохраните текущий список процессов PM2: Эта команда гарантирует, что при следующем запуске PM2 (после перезагрузки) он снова запустит все ваши приложения, которые сейчас в состоянии online.
pm2 save
Вы должны увидеть подтверждение сохранения, например:
[PM2] Saved process list for current use
- Сохраните текущий список процессов PM2: Эта команда гарантирует, что при следующем запуске PM2 (после перезагрузки) он снова запустит все ваши приложения, которые сейчас в состоянии online.