标签: environment-variables

为服务设置 %PATH%?

我安装了一个服务,它定期运行和执行某些命令。它作为本地系统帐户运行。该服务的源代码不在我的控制之下,但我确实控制了该服务所在的 Windows XP SP3 框。

最近,对系统进行了更改,将某个路径置于此服务的 %PATH% 的最前沿。该路径中的一个可执行文件与我的服务使用的命令之一同名,因此该服务错误地使用了错误的可执行文件。

我需要改回来,以便我的服务执行正确的命令。如何修改 %PATH% 以便服务看到它?我已经尝试过,setx -m ...但没有运气。

windows-xp service environment-variables

7
推荐指数
1
解决办法
2万
查看次数

在 Apache 加载之前设置服务器变量

我们在 CentOS 上运行了 Apache。基本上,我在 /etc/environment 中有一些变量,它们使用 PassEnv 传递给我们的 Apache 配置。问题是因为 Apache 在 /etc/environment 之前,所以找不到变量。

是否有类似的 /etc/environment 文件,我可以将全局环境变量添加到在 apache (httpd) 之前执行的文件中,还是必须开始编辑运行级别?

亲切的问候,

史蒂夫

centos environment-variables env apache-2.2

7
推荐指数
2
解决办法
2万
查看次数

使用 Upstart (Ubuntu) 启动时,应用程序未获取环境变量

如何在不重新启动服务器的情况下在系统范围内获取新的环境变量?

作为 Ubuntu 11.x 服务器,我使用 Upstart 来启动/重启进程。

我向 /etc/environment 添加了一个新的环境变量,需要由我的应用程序的一个进程获取。

如果我直接从我的 shell 开始这个过程,这个变量就会被拾取并且一切都很好(我已经为我的会话提供了 /etc/environment )。但是,当我使用其 Upstart 服务名称启动/重新启动进程时,没有看到该变量。

 sudo start app-name
Run Code Online (Sandbox Code Playgroud)

我很确定如果我重新启动服务器,新变量将被选中,但是我想尽量避免这种情况。我有一些其他的实时进程正在运行,如果可能的话,我希望避免中断。

ubuntu environment-variables upstart

7
推荐指数
1
解决办法
5464
查看次数

从 ZSH 自动完成中排除环境变量

快速示例:

~ $ wor<TAB>
~ $ WORDCHARS=                                                                                                                                                                                                             
WORDCHARS    WORKON_HOME  WORKON_HOME  workon 
Run Code Online (Sandbox Code Playgroud)

workon是所需的命令。有没有办法从 ZSH 中的自动完成中排除环境变量?

shell zsh environment-variables

7
推荐指数
1
解决办法
1009
查看次数

如何在鱼壳中永久设置 $TERM ?

我用fish。我正在尝试使用solarized themevim在里面运行,但是除非我运行,否则颜色会损坏:tmux

set -lx TERM screen-256color-bce;
Run Code Online (Sandbox Code Playgroud)

跑步前tmux attach

每天都要运行它很烦人,所以我想永久设置 TERM 变量。但是,当我使用以下命令设置此特定变量时,fish 似乎忽略了set -U

$ set -U foo bar; echo $foo
foo bar
$ set -U TERM screen-256color-bce; echo $TERM
TERM xterm
$ set -lx TERM screen-256color-bce; echo $TERM
TERM screen-256color-bce
Run Code Online (Sandbox Code Playgroud)

我甚至试图把set -lx TERM screen-256color-bce~/.config/fish/config.fish,而是一个新的鱼(启动外tmux)总是TERM设置为xterm

shell dotfiles environment-variables fish

7
推荐指数
1
解决办法
3118
查看次数

如何在 haproxy.conf 中使用环境变量

我的 haproxy.cfg 文件有一个使用主机名的后端服务器:

backend servers
    server myapp ${PORTAL_PORT_3000_TCP_ADDR}:${PORTAL_PORT_3000_TCP_PORT} maxconn 32
Run Code Online (Sandbox Code Playgroud)

myapp 正在链接到 haproxy docker 容器的其他 docker 容器中运行。提到的环境变量在 haproxy 容器中有值,但是当容器启动时会引发此错误

[ALERT] 244/134924 (8) : parsing [/etc/haproxy.cfg:16] : Unknown host in '${PORTAL_PORT_3000_TCP_ADDR}:${PORTAL_PORT_3000_TCP_PORT}'
[ALERT] 244/134924 (8) : Error(s) found in configuration file : /etc/haproxy.cfg
[ALERT] 244/134934 (8) : Fatal errors found in configuration.
Run Code Online (Sandbox Code Playgroud)

environment-variables haproxy

7
推荐指数
1
解决办法
4968
查看次数

在 PATH 环境变量中使用相对路径的安全隐患?

我们进行了一次审计,只是将我们标记为在$PATHenv 变量内有相对路径。我不确定这是否真的是一个安全问题,并希望与每个人联系,看看这是否真的是一个安全问题,或者它是否只是我假设的最佳实践。有人可以提供有关$PATH与亲戚一起使用的任何安全问题的信息吗?谢谢

security linux environment-variables

7
推荐指数
2
解决办法
3260
查看次数

ssh 配置文件环境变量?

在我的管理工作期间,我需要登录到几个远程 ssh 服务器。我使用三台不同的计算机客户端,它们都是 Debian GNU/Linux 系统。我保留了一个工作区目录,用于放置我完成工作所需的所有内容,该目录包含一个bashrc文件和一个ssh_config文件等。

rsync当我移动并开始使用不同的客户端时,我使用脚本手动同步该目录内容,该脚本从一台客户端计算机使用到另一台客户端计算机。

这三个客户端中的每一个上的本地用户都需要最少的配置,因此如果我需要创建一个新的本地用户或重新安装一个客户端,我只需要rsync到工作区并workspace/bashrc在真实用户的$HOME/.bashrc. 我的自定义workspace/bashrc创建了几个别名,无论我使用什么客户端,我都会得到我通常的环境。

我的自定义workspace/bashrc创建别名以这种方式连接到远程服务器:

alias s1='ssh -F ~/workspace/etc/ssh_config server1.example.com'
Run Code Online (Sandbox Code Playgroud)

并且我只需s1在任何客户端的终端中键入即可登录 server1 ,因为我的自定义ssh_config设置了所需的公钥身份验证选项、正确的端口 server1 正在侦听和正确的用户。

现在这就像一个魅力,只要ssh命令是我需要的。不幸的是,一旦我需要另一个使用 的命令ssh,事情就会变得更加混乱。

例如,如果我需要对rsync其中一台服务器进行任何操作,我将不得不编写整个 ssh 命令:

rsync -Pavz --delete -e "ssh -F $HOME/workspace/etc/ssh_config" ...
Run Code Online (Sandbox Code Playgroud)

类似的事情发生在其他命令上,例如scp,ssh-copy-id和其他命令。

我希望能够写

rsync -Pavz --delete -e "ssh" ...
Run Code Online (Sandbox Code Playgroud)

相反,并让 ssh 从环境变量中获取它的配置文件名,以便我可以在我的bashrc每次ssh调用中设置该环境变量,并且每次调用都会自动工作。

是否有这样的环境变量或问题有不同的解决方案?

linux ssh bash environment-variables

7
推荐指数
1
解决办法
8299
查看次数

通过虚拟环境运行 Django Python 命令的 Cron 作业不起作用

我有一个 crontab 文件,据说在加载项目虚拟环境后执行 Django 命令:

*/1 * * * * source /home/virtualenvs/mydjangoproject-venv/bin/activate && python /home/www/production/mydjangoproject/manage.py mydjangocommand
Run Code Online (Sandbox Code Playgroud)

...但它绝对没有任何作用。cron 日志输出没有特别的问题:

Mar 13 19:51:01 110 CRON[23807]: (root) CMD (source /home/virtualenvs/mydjangoproject-venv/bin/activate && python /home/www/production/mydjangoproject/manage.py mydjangocommand)
Run Code Online (Sandbox Code Playgroud)

不用说,当复制粘贴到 shell 中时,命令本身可以完美运行。

我知道它与我的 crontab 的环境变量有关,但我对这件事非常缺乏教育,而且我不知道该怎么做,尤其是当它在 python 虚拟环境下运行时。它应该使用我的用户环境变量吗?来自 virtualenv 的那些?如何实施?谢谢!

注意:如果有帮助,我的 crontab 环境变量有以下输出(当通过 crontab 将“env”导出到文件时):

HOME=/root
LOGNAME=root
PATH=/usr/bin:/bin
LANG=en_US.UTF-8
SHELL=/bin/sh
LC_ALL=en_US.UTF-8
PWD=/root
Run Code Online (Sandbox Code Playgroud)

以及项目虚拟环境下的以下环境变量:

TERM=xterm-256color
SHELL=/bin/bash
SSH_CLIENT=x.x.x.x 53007 22
OLDPWD=/root/production/mydjangoproject
SSH_TTY=/dev/pts/0
LC_ALL=en_US.UTF-8
USER=root
VIRTUAL_ENV=/home/virtualenvs/mydjangoproject-venv
MAIL=/var/mail/root
PATH=/home/virtualenvs/mydjangoproject-
venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/root
LANG=en_US.UTF-8
PS1=(mydjangoproject-venv)${debian_chroot:+($debian_chroot)}\u@$(hostname -f):\w\$ 
SHLVL=1
HOME=/root
LS_OPTIONS=--color=auto --group-directories-first
LOGNAME=root
SSH_CONNECTION=x.x.x.x 53007 x.x.x.x 22 …
Run Code Online (Sandbox Code Playgroud)

python environment-variables django cron

7
推荐指数
1
解决办法
3494
查看次数

使用 Nginx 在 PHP-FPM 中获取环境变量

我定义一些环境变量,像APP_ENV在我的/etc/environment文件中,在我的ArchLinux的。

如果我输入printenv,我会看到它们。

我创建了这个简单的测试文件,名为… test.php

<?php

var_dump(getenv('APP_ENV'));
var_dump(getenv());
Run Code Online (Sandbox Code Playgroud)

如果我运行php test.php,一切正常,我会看到我的 ENV 变量。

但是当我尝试通过 HTTP 访问文件时……我的环境中什么也没有!

当然,我已经改变了/etc/php/php-fpm.d/www.conf设置clear_env = no

这些是受影响的行:

; Clear environment in FPM workers
; Prevents arbitrary environment variables from reaching FPM worker processes
; by clearing the environment in workers before env vars specified in this
; pool configuration are added.
; Setting to "no" will make all environment variables available to PHP code
; via getenv(), $_ENV …
Run Code Online (Sandbox Code Playgroud)

php nginx environment-variables php-fpm env

7
推荐指数
1
解决办法
1万
查看次数