#node.js #npm #systemd #debian-stretch
#node.js #npm #systemd #debian-stretch
Вопрос:
Я пишу node.js Приложение.
В этом каталоге ( /var/lib/cloud9/BBB_WebApp$
) у меня есть package.json
:
{
"name": "MCP",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"build": "browserify ./app.js > ./public/bundle.js"
},
"dependencies": {
"browserify": "^16.2.3",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"express": "~4.16.0",
"graceful-fs": "^4.2.4",
"http-errors": "~1.6.2",
"i2c-bus": "^4.0.9",
"influx": "^5.4.0",
"jquery": "^3.3.1",
"morgan": "~1.9.0",
"node-crc": "^1.2.2",
"nodemailer": "^6.3.1",
"pug": "2.0.0-beta11",
"socket.io": "^2.1.1",
"socketcan": "^2.5.0",
"spi-device": "^2.0.9"
}
}
Приложение отлично работает с
/var/lib/cloud9/BBB_WebApp$ npm run start
или
/var/lib/cloud9/BBB_WebApp$ npm start
Теперь я хочу, чтобы приложение запускалось автоматически после загрузки.
Поэтому я использую systemd
.
$ sudo nano /lib/systemd/system/Start_MCP.service
.
[Unit]
Description=Start MCP Service
After=network.target
[Service]
User=debian
ExecStart=/usr/bin/npm run start
WorkingDirectory=/var/lib/cloud9/BBB_WebApp/
#Restart=on-failure
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
.
$ systemctl daemon-reload
$ systemctl enable Start_MCP.service
$ systemctl start Start_MCP.service
Через несколько секунд. Служба останавливается.
$ systemctl status Start_MCP.service
В системном журнале отображаются следующие строки:
20 октября 08:29:52 beaglebone systemd[1]: запущен запуск службы MCP.
20 октября 08:29:59 beaglebone npm[9518]: > mcp@0.0.0 start /var/lib/cloud9/BBB_WebApp
20 октября 08:29:59 beaglebone npm[9518]: > node ./bin/www
20 октября 08:30:03 beaglebone npm[9518]: module.js:478
20 октября 08:30:03 beaglebone npm [9518]: выдает ошибку;
20 октября 08:30:03 beaglebone npm [9518]: ^
20 октября 08:30:03 beaglebone npm [9518]: Ошибка: не удается найти модуль «bonescript»
20 октября 08:30:03beaglebone npm[9518]: функция at.Модуль._resolveFilename (module.js:476:15)
20 октября 08:30:03 beaglebone npm[9518]: в функции.Модуль._load (module.js:424:25)
20 октября 08:30:03 beaglebone npm[9518]: в Module.require (module.js:504:17)
20 октября 08:30:03 beaglebone npm[9518]: в require (internal/module.js:20:19)
20 октября 08:30:03 beaglebone npm[9518]: на объекте. (/var/lib/cloud9/BBB_WebApp/bin/www:26:9)
20 октября 08:30:03 beaglebone npm[9518]: в модуле._compile (module.js:577:32)
20 октября 08:30:03 beaglebone npm[9518]: в объекте.Module._extensions..js (module.js:586:10)
20 октября 08:30:03 beaglebone npm[9518]: в модуле.загрузка (module.js:494:32)
20 октября 08:30:03 beaglebone npm[9518]: в tryModuleLoad (module.js:453:12)
20 октября 08:30:03 beaglebone npm[9518]: в функции.Модуль._load (module.js:445:3)
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Linux 4.14.108-ti-r137
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! argv «/usr/bin/nodejs» «/usr/bin/npm» «выполнить» «запустить»
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! node v6.17.0
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! нпм v3.10.10
20 октября 08:30:03 нпм beaglebone[9518]: ОШИБКА нпм! code ELIFECYCLE
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! mcp@0.0.0 начать:node ./bin/www
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Статус выхода 1
октября 20 08:30:03 beaglebone npm[9518]: ОШИБКА npm!
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Сбой при mcp@0.0.0 запустите скрипт ‘node ./bin/www’.
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Убедитесь, что у вас установлена последняя версия node.js и установлен npm.
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Если вы это сделаете, это, скорее всего, проблема с пакетом mcp,
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! не с самим npm.
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Сообщите автору, что в вашей системе произошел сбой:
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! node ./bin/www
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Вы можете получить информацию о том, как открыть проблему для этого проекта, с помощью:
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! ошибки npm mcp
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Или, если это недоступно, вы можете получить их информацию через:
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! владелец npm ls mcp
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Вероятно, есть дополнительный вывод журнала выше.
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! Пожалуйста, включайте следующий файл с любым запросом в службу поддержки:
20 октября 08:30:03 beaglebone npm[9518]: ОШИБКА npm! /var/lib/cloud9/BBB_WebApp/npm-отладка.журнал
20 октября 08:30:03 beaglebone systemd[1]: Start_MCP.service: основной процесс завершен, код = завершен, статус = 1/СБОЙ
20 октября 08:30:03 beaglebone systemd[1]: Start_MCP.service: устройство перешло в состояние сбоя.
20 октября 08:30:03 beaglebone systemd[1]: Start_MCP.service: Сбой с результатом ‘exit-code’.
Что я делаю не так?
Почему я могу запустить приложение с помощью npm start нормально, но не с помощью systemd service.
Почему не найден bonescript.
Большое спасибо за ваши усилия.
Ответ №1:
Решение:
я не могу объяснить почему, но переустановка bonescript в каталоге
…../BBB_WebApp$ npm install bonescript —save
помогла.