如何在不重新启动服务器的情况下获取系统范围内的新环境variables? 作为Ubuntu 11.x服务器,我使用Upstart来启动/重启进程。 我在/ etc / environment中添加了一个新的环境variables,这个variables需要被我的一个应用程序的进程提取出来。 如果我直接从我的shell启动进程,variables正在拾取,一切正常(我已经为我的会话源/ etc /环境)。 但是,当我使用其Upstart服务名称启动/重新启动进程时,variables没有被看到。 sudo start app-name 我很确定,如果我重新启动服务器的新variables将被拿起,但我想尽量避免这一点。 我还有其他一些正在运行的进程,我想尽可能避免中断。
在Ubuntu 12.04上,我有一个在/etc/environment定义的环境variables,如下所示: FOO="value_before#value_after" 当我ssh进入服务器来检查值,我得到这个: $ env | grep FOO FOO=value_before 我猜这是把#作为评论和剥离出来,然而,这是有效的: $ . /etc/environment $ export FOO $ env | grep FOO FOO=value_before#value_after 我试过像这样逃避# FOO="value_before\#value_after" 但是这是行不通的,而我只是得到这个: FOO=value_before\ 任何有关如何使哈希被视为值的一部分的想法? 任何帮助将是伟大的。 我在/etc/environment文件中试过的值: FOO='value_before#value_after' FOO="value_before#value_after" FOO='"value_before#value_after"' FOO="value_before\#value_after" FOO='value_before\#value_after' 和以上其他各种组合。 当你通常在shell中设置它们的时候,很多这些都可以工作。 但是他们似乎没有在/etc/environment文件中工作。
使用供应商构build的系统,我们意识到他们创build的操作系统分区( C: :)相当小(38 GB)。 目标是将Windows 2008 R2更新到SP1。 几个消息来源指出,在安装过程中需要8 GB,其中包括提取的临时文件。 我设法清除分区上的4.6 GB空间,但仍然没有切割它。 在同一个系统上有足够空间的卷上存在另一个分区,但经验告诉我这些安装程序喜欢将其解压缩到C:\temp (或其他一些变体)。 我的问题是: Service Pack安装程序是否使用环境variables来提取临时文件( %TEMP% )? 如果临时文件可路由,是否有足够的4.6 GB空间用于SP1后安装? 除TechNet上显示的内容外,是否还有其他安装程序切换可以帮助解决此问题? 作为一个方面,我尝试了其他的select,例如缩小更大的应用程序分区( D: :),但是只有在分区之后才有足够的空间,这使得操作系统分区不能够利用卷释放的空间。 另外,我现在不在车站试试这个,但是很高兴知道这是否值得在手之前尝试。 谢谢!
我们环境中的组策略会在每次login时覆盖PATHvariables,当我运行一个“非标准”计算机时,它会完全错误(C:\ Windows vs C:\ WINNT,缺less目录等)。 目前,我每次login时都会手动更改它,但是这开始令人厌烦。 如果使用SET命令更改batch file中的PATHvariables,则它只具有本地作用域,所以更改仅适用于batch file中的命令。 set PATH=C:\WINNT;C:\WINNT\System32 set PATH 这个batch file将输出新的path,但是如果我之后在命令行上运行set PATH ,它仍然是原始path。 如何在batch file中设置全局 PATH环境? 还是有另一种技术可以使用?
我的问题是,我必须在服务器上设置envvariables(如GIT_EXEC_PATH)。 我需要每个连接的variables(所以通过bash和远程命令)。 我设法通过bash与.bash_profile设置这些variables,但我有远程命令的问题。 我发现有可能在〜/ .ssh / authorized_keys之前编写实际的rsa键,但是我不想总是写在那里,我需要一个永久的解决scheme…我发现〜/ .ssh / rc文件是由每个sshlogin执行的,所以我把我的envvariables声明,但它没有工作。 variables在rc文件中设置,但是之后它们消失了。 :S也许rc文件运行在一个子shell:S有没有什么办法可以在bash和远程命令中定义这些variables而不会有代码重复? 编辑: 我编辑的问题,因为服务器是一个godaddy共享主机,所以它有一个独特的configuration。 / etc / ssh / sshd_config和/ etc / ssh / ssh_config文件是空的。 这些文件中有评论,如果你好奇,我可以在这里复制它。 〜/ .bash_profile来源(仅限bash连接), 〜/ .bashrc永远不会被find, 〜/ .profile从来没有来源, 〜/ .ssh /环境永远不会来源, 〜/ .ssh / rc源于(通过bash和远程两者),但我认为这是在子shell中调用,因为variables消失。 〜/ .ssh / authorized_keys是每次都来源的,但是我必须在每个rsa键之前写下命令(所以我不想configuration这个)。 概要: 我可以很好地configurationbash(使用.bash_profile),但是我不能configuration远程调用。 那就是问题所在。 我正在寻找一个由bash和远程命令来源的文件。 例如: git-upload-pack命令查找exe文件,因为设置了GIT_EXEC_PATH envvariables,但是使用远程:“git clone [email protected]:myrepo local / myrepo”,服务器找不到该命令,因为GIT_EXEC_PATH没有设置。 […]
我试图启动一个需要env的服务。 variables被设置为某个path。 我在“/etc/profile.d/”中设置了这个variables。 但是,当我使用service命令启动此服务时,它不起作用。 人服务: service runs a System V init script in as predictable environment as possible, removing most environment variables and with current working directory set to /. 所以看来, service正在消除我的变数。 我应该如何设置variables,以防止它们被删除。 或者是我不应该做的事情。 我可以使用init脚本手动启动服务,甚至可以将path硬编码到脚本中,但是我想知道如何将它与service命令一起使用。
我运行我的crontab作业0 2 */1 * * /aScript >aLog.log 2>&1作为'root'用户,但是我发现env与'root'用户的env不同,因此遇到了不同我的脚本的运行时行为。 尝试修复是将导出命令放在rc.d文件中,但仍然没有显示出来! 我最终将导出命令放在aScript本身。 我的问题是,有没有更好的方法来解决这个问题? 以及为什么即使它是从同一个用户的“根”,env丢失? (我通过从根目录运行'crontab -e'来修改crontab)
我需要守护在Wine中运行的Windows应用程序,并在/var/run创build一个pid。 由于它需要运行X11会话,所以我需要确保在正在运行的用户环境中设置$ DISPLAYvariables。 假设我已经有了一个运行X11的会话,在一个给定的显示中,下面是我的/etc/init.d脚本中start-stop-daemon行的样子: start-stop-daemon –start –pidfile /var/run/wine-app.pid -m -c myuser -g mygroup -k 002 –exec /home/myuser/.wine/drive_c/Program\ Files/wine-app.exe 不幸的是,我在Ubuntu 8.04上的start-stop-daemon版本没有-e选项来设置环境variables。 我收集你可以简单地设置$ DISPLAY命令之前,像这样: VAR1="Value" start-stop-daemon … 但它不起作用。 由于我使用-c {user}选项以特定用户身份运行,所以我猜测有一个环境开关,VAR1丢失了。 我试图从正在运行的用户的.profile和/或.bashrc导出DISPLAY,但它也不起作用。 有没有另外一种方法来做到这一点? 这甚至有可能吗? 我可以俯视吗?
有没有一个环境variables来设置基于debian的系统上的临时目录? 我有一个使用该环境variables的Java小应用程序,当启动同一个小应用程序的两个实例时,它变得困惑。
我已经阅读了许多关于使用PermitUserEnvironment和文件~/.ssh/environment以便将envvariables传递给ssh shell的文章。 正式的sshd文档和其他一些资源暗示了这样做的一些安全风险。 启用环境处理可使用户能够绕过使用诸如LD_PRELOAD之类的机制的一些configuration中的访问限制。 激活PermitUserEnvironment的可能的安全问题是什么? 我期待在这些环境variables中保存数据库连接的细节,这是可取的吗?