我使用Nginx作为Web服务器在Linux机器上运行GitLab服务器。几个进程(作为root手动启动/etc/init.d/foo start
或作为子进程自动启动)作为不同的用户运行:
- nginx为www-user
- postgres作为postgres
- redis-server as redis
- unicorn-rails和sidekiq作为git
用户git配置为no-login,我通常sudo -u git -H foo
用来做用户git的东西。用户已在本地路径中安装了可执行文件(node.js)。要使用它,我需要改变我的sudo
sudo -u git -H env "PATH=/home/git/local/bin/:$PATH" foo
。我也将它添加到用户git的.bashrc文件中,但我想这是永远不会执行的,因为禁止shell登录。
由于我遇到GitLab服务器问题,我怀疑该服务没有正确设置PATH变量,并且无法在本地路径中找到node.js.
我的问题:
如何为非登录用户设置PATH等环境变量,以便以该用户身份运行的服务(由root用户启动/etc/init.d/foo start
或在启动时启动)可以访问它?
奖金问题: 哪个进程/用户需要访问Javascript引擎?Nginx的/ WWW用户?还是Rails(Unicorn)/ git?