如何为作为非登录用户运行的服务设置PATH变量?


2

我使用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?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.