NodeJとsystemdにraspbianエラーMODULE_NOT_FOUND / Module._resolveFilenameがあります。

NodeJとsystemdにraspbianエラーMODULE_NOT_FOUND / Module._resolveFilenameがあります。

ヘイヘイ!システムのどこでも実行できるノードスクリプトがあります。

/usr/bin/node /home/admin/git-repos/MMMMobileAlerts/maserver/mobilealerts.js

その後、xビットも追加しました。

 sudo chmod +x /home/admin/git-repos/MMMMobileAlerts/maserver/mobilealerts.js

今私が望むのはサービスとして実行するだけです。だからmaserver.serviceファイルを作成しました。/etc/systemd/system

[Service]
ExecStart= /usr/bin/node /home/admin/git-repos/MMMMobileAlerts/maserver/mobilealerts.js

私もそれを試しました#!

コマンドを入力してsudo systemctl daemon-reload確認してください。 sudo systemctl status maserver


● maserver.service
     Loaded: loaded (/etc/systemd/system/maserver.service; static)
     Active: failed (Result: exit-code) since Mon 2023-08-21 10:00:16 CEST; 5h 9min ago
   Main PID: 2404124 (code=exited, status=1/FAILURE)
        CPU: 234ms

Aug 21 10:00:16 dockerpi node[2404124]:     at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
Aug 21 10:00:16 dockerpi node[2404124]:     at Module._load (node:internal/modules/cjs/loader:922:27)
Aug 21 10:00:16 dockerpi node[2404124]:     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
Aug 21 10:00:16 dockerpi node[2404124]:     at node:internal/main/run_main_module:23:47 {
Aug 21 10:00:16 dockerpi node[2404124]:   code: 'MODULE_NOT_FOUND',
Aug 21 10:00:16 dockerpi node[2404124]:   requireStack: []
Aug 21 10:00:16 dockerpi node[2404124]: }
Aug 21 10:00:16 dockerpi node[2404124]: Node.js v18.17.1
Aug 21 10:00:16 dockerpi systemd[1]: maserver.service: Main process exited, code=exited, status=1/FAILURE
Aug 21 10:00:16 dockerpi systemd[1]: maserver.service: Failed with result 'exit-code'.

Raspbianでsystemdを使用してNodeJsスクリプトをサービスとして実行したいと思います。

答え1

Nodeから呼び出されたjsにサービスファイルのユーザーとグループディレクティブを設定して、同じ問題を解決しました。

[Service]
User=ubuntu
Group=ubuntu

関連情報