Yritin seurata tätä ohjetta suorittaaksesi solmasovelluksen palveluna. Se ei kuitenkaan käynnisty, poistumiskoodilla 127. Onko mahdollista korjata ongelma?

Tämä on päiväkirja.

sudo journalctl --follow -u serviceName -- Logs begin at Tue 2017-08-08 16:27:10 GMT. -- Aug 08 17:06:57 raspberrypi systemd[1]: Started serviceName. Aug 08 17:06:57 raspberrypi app.js[7234]: [46B blob data] Aug 08 17:06:57 raspberrypi systemd[1]: serviceName.service: main process exited, code=exited, status=127/n/a Aug 08 17:06:57 raspberrypi systemd[1]: Unit serviceName.service entered failed state. Aug 08 17:06:57 raspberrypi systemd[1]: serviceName.service holdoff time over, scheduling restart. Aug 08 17:06:57 raspberrypi systemd[1]: Stopping serviceName... Aug 08 17:06:57 raspberrypi systemd[1]: Starting serviceName... Aug 08 17:06:57 raspberrypi systemd[1]: serviceName.service start request repeated too quickly, refusing to start. Aug 08 17:06:57 raspberrypi systemd[1]: Failed to start serviceName. Aug 08 17:06:57 raspberrypi systemd[1]: Unit serviceName.service entered failed state. 

Tämä on serviceName.service.

[Unit] Description=ServiceName After=network.target [Service] ExecStart=/home/pi/projects/ServiceName/app.js Restart=always User=root Group=root Environment=PATH=/usr/bin:/usr/local/bin Environment=NODE_ENV=production WorkingDirectory=/home/pi/projects/ServiceName [Install] WantedBy=multi-user.target 

Tämä on app.js-sovelluksen yläosassa.

#!/usr/bin/env node 

Kommentit

  • Mitä tapahtuu, kun suoritat /home/pi/projects/ServiceName/app.js komentotulkista?
  • Se toimii täydellisesti. Se toimii myös hyvin käyttämällä forever-service.
  • Mikä on type node ja ?
  • 1. node is /home/pi/.nvm/versions/node/v7.8.0/bin/node 2. Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 6166268 4446224 1383764 77% /

Vastaa

ExecStart=/home/pi/projects/ServiceName/app.js 

Tämä käskee systemd ajaa app.js suoraan. Onko tämä .js tiedosto suoritettavissa suoraan? Jos ei, komentotulkki heittää poistumiskoodin 127 – ”Tuntematon komento”.

Kommentit

  • kysymykseen linkitetyn oppaan mukaan app.js -kuvakkeen yläosassa olevan shebangin pitäisi tehdä se suoritettavaksi, koska se määrittää solmun tulkkina.
  • Uskon, että @DopeGhoti viittasi suoritettavaan lupaan – kuten tiedostoissa olevat " luku-kirjoitus-suoritettavat " -käyttöoikeudet.
  • " Jos ei, komentotulkki heittää poistumiskoodin 127 " – riippumatta 127: n tarkasta syystä, systemd ei käytä komentotulkkia palvelujen käynnistämiseen.

Vastaus

127 ei ole komentoa.

Varmista, että pääkäyttäjällä on pääsy solmu binäärinen muu muuttaa seuraavia rivejä käyttäjälle, jolle olet asentanut solmun.

User=root Group=root 

Kokeile muuta

[Unit] Description="ServiceName" After=network.target [Service] ExecStart=path_to_node/node /home/pi/projects/ServiceName/app.js Restart=always # Restart service after 10 seconds if node service crashes RestartSec=10 # Output to syslog StandardOutput=syslog StandardError=syslog #Change this to find app logs in /var/log/syslog SyslogIdentifier=nodejs-api # Followig will require if you are using the PORT or Node from Envirnoment Environment=NODE_ENV=production PORT=3000 [Install] WantedBy=multi-user.target 

Kun palvelimesi mac hine on ylös & et voi käyttää palvelinta, vianmääritys tapahtuu tarkistamalla / var / log / syslog-lokit seuraavalla komennolla

sudo grep "nodejs-api" /var/log/syslog 

Käynnistä käynnistettäessä: sudo systemctl ota rocketch käyttöön

Vastaa

Voit suorittaa virheenkorjauksen vain suorittamalla tämän (korvaa < > osat systemd-yksikkötiedostosi arvon kanssa:

 sudo runuser -l <User> -g <Group> -c "cd <WorkingDirectory> && <PATH> <ExecStart>"  

Ongelma on annettu User ei voi käyttää ExecStart -asetusta asettamassasi PATH -osiossa.

Jos joku on edelleen jumissa, olen kirjoittanut vaiheittaisen oppaan: järjestelmän virheenkorjaus

Vastaa

Hei kaikille kiinnostuneille, minulla oli tämä asia ja kokeilin kaikkea auringon alla, mutta lopulta päivitin N: stä ode 6 solmulle 12 korjasi ongelman.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *