CentOSでのサービスの作成(node.jsアプリケーションをサービス化)

2022年5月18日

Node.jsでつくったWebアプリをサービスに登録して動かすことにした。

なぜなら,コンソールにて,ずっと「&」で実行しておくのはおかしい,からである。

今まで,ずっと「バックグラウンドで実行」状態で動かしていたのだ。恐ろしい。

これを正しく管理するために,サービスを作成し,登録する。

サービスの作成自体は簡単である。

CentOS7に手動でService登録を行う

Systemdを使ってさくっと自作コマンドをサービス化してみる

この辺りが参考になる。

とにかく /etc/systemd/system ディレクトリ以下に,「何を動かすか」を指定したファイルを作成すれば良い。

実行パスは node {絶対パス} でも良いだろうが,/usr/bin/node とnodeもパスを丁寧に指定すると良いかもしれない。動けばどちらでも良い。

あとは,サービスを実行するだけだが,node のアプリ内にて,相対パスでファイルを探す既述がある場合,実行する場所が変わるため参照できなかったり,パーミッションエラーになったりするので注意が必要。

場合によっては,nodejs ユーザー用のフォルダを /home 以下につくり,パーミッションを nodejs.nodejs に設定し,そこに nodejs アプリを突っ込んで,実行時に nodejs ユーザーを指定する。

指定の方法は process.setuid(x)を使う。
(root のままで良いなら,必要ないが・・・。)

nodejs 用のフォルダを作った場合は,主の操作ユーザーを nodejs グループに入れてやると,何の問題もなく,ファイルの修正等ができる。

以上,本日の備忘録です。


 カテゴリ一覧

 雑談(171)
アニメ(19)/ゲーム(12)/ドラマ(3)/パソコン(36)/小説(3)/広島東洋カープ(16)/映画(11)/漫画(33)/音楽(61)
 製作記(89)
AI(4)/CakePHP(3)/CentOS(4)/JavaScript(JS)(9)/Nuxt.js(4)/Vue.js(18)/WordPress(23)/料理(10)