Подтвердить что ты не робот

Автоматический запуск сервера node.js при загрузке

Может ли кто-нибудь из экспертов node.js сказать мне, как я могу настроить node JS для автозагрузки сервера при загрузке моего компьютера?  Я нахожусь в Windows

4b9b3361

Ответ 1

Это совсем не то, что нужно настроить в node.js, это чисто ОС-ответственность (Windows в вашем случае). Самый надежный способ добиться этого - через службу Windows.

В этом суперлегком модуле, который устанавливает node script как службу Windows, он называется node -windows (npm, github, . Я использовал это раньше и работал как шарм.

var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'Hello World',
  description: 'The nodejs.org example web server.',
  script: 'C:\\path\\to\\helloworld.js'
});

// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
  svc.start();
});

svc.install();

p.s.

Я нашел вещь настолько полезной, что я построил еще более удобную оболочку вокруг нее (npm, github).

Установка:

npm install -g qckwinsvc

Установка службы:

> qckwinsvc
prompt: Service name: [name for your service]
prompt: Service description: [description for it]
prompt: Node script path: [path of your node script]
Service installed

Удаление службы:

> qckwinsvc --uninstall
prompt: Service name: [name of your service]
prompt: Node script path: [path of your node script]
Service stopped
Service uninstalled

Ответ 2

Если вы используете Linux, MacOS или Windows pm2 ваш друг. Это менеджер процессов, который очень хорошо справляется с кластерами.

Вы устанавливаете это:

npm install -g pm2

Запустите кластер, например, из 3 процессов:

 pm2 start app.js -i 3

И make pm2 запускает их при загрузке:

 pm2 startup

У него есть API, даже интерфейс монитора:

AWESOME

Зайдите на github и прочитайте инструкцию. Это простой в использовании и очень удобный. Лучшая вещь с тех пор навсегда.

Ответ 3

Если я не ошибаюсь, вы можете запустить приложение с помощью командной строки и, следовательно, также использовать пакетный файл. В этом случае не очень сложно запустить его с помощью входа в Windows.

Вы просто создаете командный файл со следующим содержимым:

node C:\myapp.js

и сохраните его с расширением .bat. Здесь myapp.js - это ваше приложение, которое в этом примере находится на диске C: (spcify путь).

Теперь вы можете просто выбросить пакетный файл в свою папку автозагрузки, которая находится в папке C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Просто откройте его, используя% appdata% в поле запуска dailog и найдите в > Роуминг > Microsoft > Windows > Меню "Пуск" > "Программы" > "Запуск"

Пакетный файл будет выполнен во время входа в систему и запустит ваше приложение node из cmd.

Ответ 4

Я бы рекомендовал установить ваше приложение node.js в качестве службы Windows, а затем установить службу для запуска при запуске. Это должно упростить управление действием запуска с помощью оснастки "Службы Windows", а не для добавления или удаления пакетных файлов в папке "Автозагрузка".

Другой связанный с обслуживанием вопрос в Stackoverflow предоставил пару (по-видимому) действительно хороших вариантов. Проверьте Как установить node.js в качестве службы Windows. node-windows выглядит очень многообещающе для меня. В стороне я использовал аналогичные инструменты для Java-приложений, которые нужно было запускать как службы. Это сделало мою жизнь намного легче. Надеюсь, это поможет.

Ответ 6

Это легко сделать вручную с помощью планировщика заданий Windows.

  • Сначала установите навсегда.
  • Затем создайте командный файл, который содержит следующее:

    cd C:\path\to\project\root
    call C:\Users\Username\AppData\Roaming\npm\forever.cmd start server.js
    exit 0
    
  • Наконец, создайте запланированное задание, которое запускается при входе в систему. Эта задача должна вызвать командный файл.

Ответ 7

Используйте pm2, чтобы запускать и запускать процессы nodejs в окнах.

Обязательно прочитайте это обсуждение github о том, как настроить планировщик задач для запуска pm2: https://github.com/Unitech/pm2/issues/1079

Ответ 8

Вот еще одно решение Я написал в С# для автоматического запуска собственного сервера node server или pm2 в Windows.

Ответ 9

Я знаю, что есть несколько способов достичь этого в соответствии с решениями, о которых говорилось выше. Я не пробовал все из них, но некоторые сторонние сервисы не имеют четкого представления о том, какие задачи выполняются в фоновом режиме. Я добился этого с помощью сценария powershell, похожего на тот, который упоминается как командный файл Windows. Я запланировал его с помощью планировщика задач Windows, чтобы запускать каждую минуту. Это было довольно эффективно и прозрачно до сих пор. Преимущество, которое я имею здесь, состоит в том, что я проверяю процесс явно, прежде чем начать его снова. Это не приведет к чрезмерной нагрузке на процессор на сервере. Также вам не нужно явно помещать файл в папки автозагрузки.

function CheckNodeService ()
{

$node = Get-Process node -ErrorAction SilentlyContinue

if($node)
{
    echo 'Node Running'
}
else
{
    echo 'Node not Running'
    Start-Process "C:\Program Files\nodejs\node.exe" -ArgumentList "app.js" -WorkingDirectory "E:\MyApplication"
    echo 'Node started'

}
}

CheckNodeService

Ответ 10

Скопировано прямо из этого ответа:

Вы можете написать script на любом языке, который вы хотите автоматизировать (даже используя nodejs), а затем просто установите ярлык на этот script в пользовательском% appdata%\Microsoft\Windows\Start Menu\Programs\Загрузочная папка