Debian Автозапуск службы Systemd

#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
помогла.