
Имя проект на NodeJs, его довольно легко запустить командой в консоли
npm start
Но после завершения сессии пользователя, который выполнил команду или закрытия консоли, проект перестает работать. Что делать ?♂️ ???
Как этого избежать?
Можно запустить процесс в фоновом режиме, используя:
(npm run start&)
Вот так:

Недостатки:
- Чтобы завершить этот сеанс, я не могу просто закрыть сеанс SSH. Мне нужно вручную убить процесс вот так:

- Невозможно увидеть какие-либо выходные данные, такие как ошибки или исключения, из веб-приложения, поскольку оно работает в фоновом режиме.
Обратите внимание: выходные данные веб-приложений отображаются в файле журнала в каталоге журнала npm по умолчанию.
Есть ли для этого лучший метод?
PM2
PM2 — это демон-менеджер процессов, который поможет вам управлять вашим приложением и поддерживать его в сети 24/7.
Установка
sudo npm install pm2 -g
Запуск
pm2 --name HelloWorld start npm -- start

Обратите внимание: — имя не является обязательным, но чрезвычайно полезно для идентификации запущенных процессов.
Список запущенных процессов PM2
pm2 list
или
pm2 ps

Остановка процессов РМ2
pm2 delete 0

Обратите внимание: вы можете использовать имя процесса вместо идентификатора
Логирование в РМ2
pm2 logs

Документация по использованию РМ2.
Оригинал «How to npm run start at the background«