Может ли кто-нибудь из экспертов node.js сказать мне, как я могу настроить node JS для автозагрузки сервера при загрузке моего компьютера? Я нахожусь в Windows
Автоматический запуск сервера node.js при загрузке
Ответ 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, даже интерфейс монитора:
Зайдите на 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-приложений, которые нужно было запускать как службы. Это сделало мою жизнь намного легче. Надеюсь, это поможет.
Ответ 5
вы должны попробовать это
npm навсегда
Ответ 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\Загрузочная папка