После удаления сервиса pm2-service-uninstall все нормально
НО зачем и что делает эта команда pm2-service-install ? Пытается запустить pm2-windows-service - как службу (сервис) windows ?
Получается что достаточно после запуска pm2 нужного скрипта
pm2 save
Что конкретно делает эта команда pm2-service-install ?? , если после перезагрузки сервера скрипт стартует в pm2 и после команды pm2 save
Конкретно с твоей проблемой не сталкивался. При этом вижу целую секцию возможных нюансав при запуске pm2 как сервиса винды.
Посмотри эту доку: тебе нужна переменная окружения PM2_HOME, нужно использовать одинаковые системные аккаунты как для запуска сервиса, так и для использования pm2, и целая пачка других нюансов.
Это дополнительные настройки какие то, или обязательная вещь ?
Повторюсь но после
pm2 start myserver.js
pm2 save
//как написано в Quickstart
//After reading the caveats section, use PM2 to start the set of processes that you want the service to restore, and then //just do: pm2 save
Сервер nodejs после перезагрузки железа стартует …
Следовательно эта вещь обязательная если ты хочешь чтобы твои приложения стартовали после перезагрузки.
По поводу изначальной проблемы:
Наверное ты установил сервис из-под админа, а запускаешь pm2 из-под пользователя? Тогда ошибку можно объяснить тем что ползователю недостаточно прав чтобы работать с pm2 файлом rpc.sock. Попробуй запустить pm2 из-под админа после запуска pm2 сервиса.
Нет сервис из под админа (при install было много консольных UAC) и установка пользователь pm2 админ.
Но возможно это разные админы, так как комп в домене (но возможно это и не причем) . И есть два админа.
Но в учетку другого админа конечно не переходил.
В том то и странность что после стандартного запуска
pm2 start myserver.js
если сделать
pm2 save
После перезагрузки диспетчере висит два nodejs процесса
Quickstart
After reading the caveats section, use PM2 to start the set of processes that you want the service to restore, and then just do: pm2 save
The service will then restart that set of processes when the service is next started (by default this will be on system boot).
Моя идея в том что у пользователя, который запускает pm2 может не быть прав на чтение файла, созданного window service. Что именно к этом привело угадать не смогу. Это только тебе проверить это на своей машине.
Еще вариант - посмотри сколько на самом деле зарегано window services. Может зарегистрировано 2 штуки.
2 процесса это может быть нормально. Один - регистированный сервис, второй - это твое приложение, запущенное первым.
Не понятно что тебе тут не понятно. Механика pm2 такая: ты запустил с его помощью несколько процессов, потом “запомнил” эти процессы с помощью pm2 save. pm2 записал этот факт в конфигурационном файле. pm2-service-install регистрирует windows service, который смотрит файл конфигурации и запускает соответствующие процессы. Ну а чтобы все работало, нужно прочитать и сконфигурировать по “caveats section”.
Спасибо, за развернутый ответ
Но все таки, pm2 save - это команда pm2-windows-service
Если после pm2 происходит только запись в конфигурационный файл, ничего не должно само запускаться ?
Но без команды pm2-service-install [-n ] запускается, многократно проверял после перезагрузки.
Хм…
pm2-service-install - пятое колесо: в самом pm2 есть функционал автостарта под windows.
Возможно остался зарегистрированный сервис после запуска pm2-service-install, который не вычистился. 100% уверен в винде есть инструмент чтобы посмотреть существующие сервисы.
Убрать из автозагрузки можно через правку конфига pm2
Практически ты прав, кроме pm2-windows-service, стоял еще другой “стартер” pm2-windows-startup
поэтому после
pm2 save
скрипты и стартовали - работал pm2-windows-startup
После
pm2 stop [id|name|all|json|stdin]
pm2 save
автозагрузки скриптов прекратились
Удалил pm2-windows-service и pm2-windows-startup, но теперь при загрузке такое
сообщение
Windows Script Host
Не удается найти файл сценария
“C:\Users\nameuser\AppData\Roaming\npm\node_modules\pm2-windows-startup\invisible.vbs”
То есть что то осталось.
Можно ли это что то найти ?
И кто ищет - это файл сценария ?
Ситуация выглядит так что остался зарегистрированный сервис от pm2-windows-startup модуля и тебе надо удалить этот сервис.
Да, тебе нужно найти виндовый диалог, который показывает список зарегистрированных сервисов. В этом списке будет сервис который запускает C:\Users\nameuser\AppData\Roaming\npm\node_modules\pm2-windows-startup\invisible.vbs файл.
Если честно то я Вас не понял,
в службах посмотрел там нет службы которая ждет запуска pm2-windows-startup.
Сама винда где то хранит запись о файле …pm2-windows-startup\invisible.vbs ?
Тебе нужно установить пакет node-pm2-windows-startup и выполнить команду pm2-startup uninstall, потом удалить пакет node-pm2-windows-startup. Это уберет проблему