我正在尝试调用一个程序在 /etc/rc.local 中启动时运行,该程序运行两个命令:
screen -dmS name
screen -S name -X stuff command
然而,该命令依赖于设置的环境变量。我已经在根 .profile 和根 .pam_environment 文件中设置了这些 EXPORT 命令。作为参考,它们是:
export PATH=$PATH:/usr/local/cuda-7.0/bin
export LD_LIBRARY_PATH=:/usr/local/cuda-7.0/lib64
但是,启动屏幕无法看到这些变量和错误error while loading shared libraries: libcudart.so.7.0: cannot open shared object file: No such file or directory
- 如果未设置这些变量,这就是我所期望的。
问题是我不明白为什么没有设置它们。我最好的猜测是,出于某种原因,屏幕正在使用/bin/sh
(这是它报告的内容,如果 I echo $0
,而根的默认外壳是/bin/bash
更奇怪的是,这只发生在启动时像这样实例化的屏幕。如果我使用相同的命令来启动一个分离的屏幕,它会正常工作(并使用 /bin/bash)并且环境变量没有问题。
知道是什么原因造成的以及如何解决吗?我正在使用Ubuntu 14.04 LTS
.