なんかSupervisorでdenoコマンド実行するとrootユーザ以外のときにnpmのキャッシュの権限で怒られる

2 min read

こんにちは、無能です。
Superviosrでroot以外の権限で立ち上げるとき、user=で指定できるんですがなんか怒られた。
というのも、どうやらキャッシュ周りが悪さしてるみたいでSupervisorで立ち上げるとき環境変数はrootユーザのままなので環境変数を渡してあげる必要があるのだが実行コマンドはdenoなのでどこのキャッシュ使ってるんだ?と思ったらこれで確認できた。./node_modulesだけじゃないから割とdenoコマンド使っているとdenoでnpm資産を使っている意識があまり飛んでいた。

$ npm config get cache
/home/haturatu/.npm

で、この環境変数はこれで一緒に渡せる

environment=DENO_INSTALL="/home/haturatu/.deno",PATH="/home/haturatu/.deno/bin:/home/haturatu/.cargo/bin:/home/haturatu/.npm-global/bin:$PATH",HOME="/home/haturatu"

denoのCMS用だから。cargoの情報は渡す必要は無いが他にもこの環境変数指定は使いたいから残しておく。それでこんな感じになる

[program:adminblog]
command=deno task lume cms --location=http://localhost:3001
user=haturatu
directory=/var/www/html/soulmining
autostart=true                        ; サーバー起動時に自動的にプロセスを開始
autorestart=true                      ; プロセスが終了した場合に自動的に再起動
stderr_logfile=/var/log/adminblog.err.log ; 標準エラーログファイルの場所
stderr_logfile_maxbytes=1MB           ; ログファイルの最大ファイルサイズ
stdout_logfile=/var/log/adminblog.out.log ; 標準出力ログファイルの場所
stdout_logfile_maxbytes=1MB           ; ログファイルの最大ファイルサイズ
stdout_logfile_backups=0           ;過去のログファイルの保管をしない
stderr_logfile_backups=0          ;過去のエラー出力ログファイルの保管をしない
environment=DENO_INSTALL="/home/haturatu/.deno",PATH="/home/haturatu/.deno/bin:/home/haturatu/.cargo/bin:/home/haturatu/.npm-global/bin:$PATH",HOME="/home/haturatu"

ちなみにdirectoryに違和感感じてるけどこれはこの鯖作ったときからの名残なのでしょうがない。
正しくやるなら/var/www/soulminingですかね。
それでは。
またよろしくおねがいします。