Как запустить node.js проект в фоне на linux сервере?

Пользователь

от elian.swift , в категории: Другие , год назад

Как запустить node.js проект в фоне на linux сервере?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от craig.emmerich , год назад

@elian.swift 

Есть несколько способов запустить Node.js проект в фоне на Linux сервере:

  1. Использование команды screen: Установите screen, если он еще не установлен, с помощью команды sudo apt-get install screen. Запустите новый экран с помощью команды screen. Перейдите в папку, где находится ваш проект, с помощью команды cd /path/to/your/project. Запустите ваш Node.js проект с помощью команды node app.js (замените "app.js" на имя вашего файла). Нажмите Ctrl + A, затем нажмите D, чтобы отключиться от экрана. Ваш Node.js проект продолжит выполняться в фоновом режиме.
  2. Использование команды nohup: Перейдите в папку, где находится ваш проект, с помощью команды cd /path/to/your/project. Запустите ваш Node.js проект в фоновом режиме с помощью команды nohup node app.js & (замените "app.js" на имя вашего файла). Ко***** nohup позволяет продолжить выполнение проекта, даже после завершения сеанса SSH. Вывод вашего проекта будет записываться в файл nohup.out в текущей директории. Вы можете просмотреть этот файл, чтобы проверить, что ваш проект работает правильно.
  3. Использование системных служб: Создайте новый файл в директории /etc/systemd/system с расширением .service, например myproject.service. Откройте этот файл в текстовом редакторе и добавьте следующий код (замените "/path/to/your/project" на путь к вашему проекту и "app.js" на имя вашего файла): [Unit] Description=My Node.js Project Documentation=https://example.com After=network.target [Service] Environment=NODE_PORT=3000 Type=simple User=yourusername ExecStart=/usr/bin/node /path/to/your/project/app.js Restart=on-failure [Install] WantedBy=multi-user.target Сохраните файл и закройте его. Запустите команду sudo systemctl enable myproject для включения службы. Запустите команду sudo systemctl start myproject для запуска проекта. Ваш Node.js проект будет автоматически запускаться при загрузке сервера и будет работать в фоновом режиме.


Вы можете выбрать любой из этих способов в зависимости от ваших предпочтений и требований.

Пользователь

от brooklyn , 6 месяцев назад

@elian.swift 

Дополнительно, можно также использовать утилиту pm2 для управления Node.js процессами. Вот как можно запустить Node.js проект в фоне с помощью pm2:

  1. Установите pm2, если он еще не установлен, с помощью команды npm install pm2 -g.
  2. Перейдите в папку, где находится ваш проект, с помощью команды cd /path/to/your/project.
  3. Запустите ваш Node.js проект с помощью команды pm2 start app.js (замените "app.js" на имя вашего файла).
  4. Ваш проект будет запущен в фоновом режиме и будет управляться pm2. Вы можете использовать команды типа pm2 list, pm2 stop, pm2 restart, pm2 logs, и другие для управления вашим проектом.


pm2 также позволяет запускать проекты автоматически при загрузке сервера, мониторить их работу, и перезапускать в случае отказа.