Supervisor ругается на права кэша npm при выполнении команды deno от пользователя, отличного от root

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

Здравствуйте, это я, некомпетентный.
При запуске с Supervisor от пользователя, отличного от root, можно указать user=, но что-то пошло не так.
Оказалось, что проблема была с кэшем. При запуске с Supervisor переменные окружения остаются от пользователя root, поэтому их нужно передавать. Но поскольку команда выполнения — deno, я задался вопросом, какой кэш используется? И вот как это можно было проверить. Я часто использую команду deno, и у меня как-то вылетело из головы, что deno использует ресурсы npm, а не только ./node_modules.

$ 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"

Это для CMS на deno. Информацию о 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.
На этом всё.
До новых встреч.

Related Posts