如果我输入终端,
export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)
...存储该环境变量的shell在哪里?
我正在使用Ubuntu 8.10.我查看了文件〜/ .profile和/ etc/profile,找不到DISPLAY的痕迹.
我有两个GPU,并希望同时通过ipynb运行两个不同的网络,但第一个笔记本总是分配两个GPU.
使用CUDA_VISIBLE_DEVICES,我可以隐藏python文件的设备,但是我不确定如何在笔记本中这样做.
反正是否有不同的GPU隐藏在同一台服务器上运行的笔记本电脑?
我想$HOME在我正在编写的C++程序中访问环境变量.如果我用C编写代码,我只是使用该getenv()函数,但我想知道是否有更好的方法来实现它.这是我到目前为止的代码:
std::string get_env_var( std::string const & key ) {
char * val;
val = getenv( key.c_str() );
std::string retval = "";
if (val != NULL) {
retval = val;
}
return retval;
}
Run Code Online (Sandbox Code Playgroud)
我应该用getenv()C++访问环境变量吗?是否有任何我可能遇到的问题,我可以通过一点点知识来避免?
我有以下development.yml文件的开发部分:
development:
adapter: postgresql
host: localhost
database: testtb
username: app_user
password: ENV['APP_USER_POSTGRES_PASSWORD'] <= Troublesome line
Run Code Online (Sandbox Code Playgroud)
当我打开一个rails控制台bundle exec rails console并键入时,ENV['APP_USER_POSTGRES_PASSWORD']我会回到我在本地配置文件中指定的数据库密码.但是,当我启动我的rails服务器时,它无法连接到数据库,失败了
PGError FATAL: password authentication failed for user "app_user"
Run Code Online (Sandbox Code Playgroud)
这是以前的工作,当我用纯文本输入数据库密码,而不是试图通过它来访问它ENV['...'],但出于显而易见的原因,我想完全保留这个文件的实际密码(因此在代码库之外)同时仍然能够对文件进行其他非安全更改database.yml.
我缺少的语法有什么特别之处,或者database.yml在加载文件时由于某种原因环境变量不可用?
我真的不知道如何让主管使用环境变量.
以下是配置代码段.
[program:htNotificationService]
priority=2
#autostart=true
#autorestart=true
directory=/home/ubuntu/workspace/htFrontEnd/heythat/htsite
command = /usr/bin/python htNotificationService.py -service
stdout_logfile=/var/log/heythat/htNotificationService.log
redirect_stderr=true
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat
stopsignal=QUIT
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat
environment=PYTHONPATH=$PYTHONPATH:/home/ubuntu/workspace/htFrontEnd/heythat
environment=PATH=/home/ubuntu/workspace/htFrontEnd/heythat,PYTHONPATH=$PYTHONPATH:/home/ubuntu/workspace/htFrontEnd/heythat
Run Code Online (Sandbox Code Playgroud)
当我开始上司时,我得到了
htNotificationService: ERROR (abnormal termination)
Run Code Online (Sandbox Code Playgroud)
我可以通过设置python路径从shell开始,但不能从主管开始.在日志中,我收到一条错误消息,指出无法找到导入.好吧,如果主管能够工作,那就可以解决.我甚至在/ etc/environment中有路径?
为什么主管不工作?
考虑以下:
me@mine:~$ cat a.sh
#!/bin/bash
echo "Lines: " $LINES
echo "Columns: " $COLUMNS
me@mine:~$ ./a.sh
Lines:
Columns:
me@mine:~$ echo "Lines: " $LINES
Lines: 52
me@mine:~$ echo "Columns: " $COLUMNS
Columns: 157
me@mine:~$
Run Code Online (Sandbox Code Playgroud)
变量$LINES和$COLUMNS是shell变量,不是环境变量,因而不会被导出到子进程(但会被自动更新,当我调整xterm窗口,通过SSH从远程位置登录,即使).有没有办法让我的脚本知道当前的终端大小?
编辑:我需要这个作为解决方法来解决这个问题:vi(以及vim,less和类似的命令)每次使用它时都会搞砸屏幕.更改终端不是一个选项,因此我正在寻找解决方法(向下滚动$LINES线肯定不是完美的解决方案,但至少比丢失前一个屏幕更好)
我想在系统服务文件中"激活"virtualenv.
我想避免在systemd进程和python解释器之间有一个shell进程.
我目前的解决方案如下:
[Unit]
Description=fooservice
After=syslog.target network.target
[Service]
Type=simple
User=fooservice
WorkingDirectory={{ venv_home }}
ExecStart={{ venv_home }}/fooservice --serve-in-foreground
Restart=on-abort
EnvironmentFile=/etc/sysconfig/fooservice.env
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
/etc/sysconfig/fooservice.env
PATH={{ venv_home }}/bin:/usr/local/bin:/usr/bin:/bin
PYTHONIOENCODING=utf-8
PYTHONPATH={{ venv_home }}/...
VIRTUAL_ENV={{ venv_home }}
Run Code Online (Sandbox Code Playgroud)
但我遇到了麻烦.我得到ImportErrors,因为缺少sys.path中的一些内容.
Inno Setup允许您通过[Registry]部分设置环境变量(通过设置对应于环境变量的注册表项)
但是,有时您不只是想设置一个环境变量.通常,你想修改它.例如:安装时,可能需要在PATH环境变量中添加/删除目录.
如何从InnoSetup中修改PATH环境变量?
我正在开展一项任务,涉及使用Dockerfile构建一个以centOs为基础的docker镜像.dockerfile中的一个步骤需要设置http_proxy和https_proxy ENV变量才能在代理后面工作.
由于这个Dockerfile将由具有不同代理的多个团队使用,我想避免为每个团队编辑Dockerfile.相反,我正在寻找一个允许我在构建时传递ENV变量的解决方案,例如,
sudo docker build -e http_proxy = somevalue.
我不确定是否已有提供此功能的选项.我错过了什么吗?
python ×2
bash ×1
boot2docker ×1
c++ ×1
docker ×1
dockerfile ×1
inno-setup ×1
linux ×1
shell ×1
supervisord ×1
swift ×1
tensorflow ×1
terminal ×1
virtualenv ×1
yaml ×1