Node.jsでつくったWebアプリをサービスに登録して動かすことにした。
なぜなら,コンソールにて,ずっと「&」で実行しておくのはおかしい,からである。
今まで,ずっと「バックグラウンドで実行」状態で動かしていたのだ。恐ろしい。
これを正しく管理するために,サービスを作成し,登録する。
サービスの作成自体は簡単である。
Systemdを使ってさくっと自作コマンドをサービス化してみる
この辺りが参考になる。
とにかく /etc/systemd/system ディレクトリ以下に,「何を動かすか」を指定したファイルを作成すれば良い。
実行パスは node {絶対パス} でも良いだろうが,/usr/bin/node とnodeもパスを丁寧に指定すると良いかもしれない。動けばどちらでも良い。
あとは,サービスを実行するだけだが,node のアプリ内にて,相対パスでファイルを探す既述がある場合,実行する場所が変わるため参照できなかったり,パーミッションエラーになったりするので注意が必要。
場合によっては,nodejs ユーザー用のフォルダを /home 以下につくり,パーミッションを nodejs.nodejs に設定し,そこに nodejs アプリを突っ込んで,実行時に nodejs ユーザーを指定する。
指定の方法は process.setuid(x)を使う。
(root のままで良いなら,必要ないが・・・。)
nodejs 用のフォルダを作った場合は,主の操作ユーザーを nodejs グループに入れてやると,何の問題もなく,ファイルの修正等ができる。
以上,本日の備忘録です。
投稿記事のカテゴリやタグと同じ記事をランダム表示します。