2022/11/13

[npm] systemctl で npm を動かすのは面倒そうだ

お仕事で JavaScript というか TypeScript というか、node.js で動くアプリを作った。
サーバみたいなもので、ずっと動いていてほしい。

となるt、systemd というか systemctl というか、そういうやつで動いていてほしい。


最初は node.js へのフルパスを書いて、直接パラメータなども書いて動かしていた。
が、パラメータの種類が増えて、最後の方になると TypeScript のトランスパイルも行いたくなったので npm で pre などを付けて開発をしていた。

そこまでくると、node.js ではなく npm の方を使って systemctl で実行して欲しいと思うのが人情だろう。

npm も同じようにフルパスで書いてあげると、それは systemctl で動いた。
しかしそこから node を実行するようにしていると、そちらは PATH が通っていないために実行エラーになってしまった。
systemctl が動くユーザでも動くような PATH に置いてあれば良かったのだが、node は nvm とか nvs のようなバージョン管理している方のパスに置いていたのだった。
まあ、動かんよね。

 

検索してみたものの、あまり対策はなさそうだった。

  • node はパスが通ったところに置く
    • そうするとバージョン管理している意味が無いよね
  • スクリプトファイルを置いてそちらに全部書く
    • まあこっちが妥当なのかな
  • node をフルパスで書いて npm を使わない

というわけで、今回は 最後のパターンを使った。
systemctl みたいな権限を使って実行するのだったら、パスの回避だけでスクリプトを作りたくなかったというところか。スクリプトで実行すること自体に意味があるんだったらやったのだけど、今回はそうじゃなかったからなぁ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。