我正在使用运行Debian的BeagleBone Black(BeagleBone网站提供链接的最新版本,我相信),我最近在其上安装了Java。每次启动电路板时,我都必须再次设置PATH for Java,如下所示。
root@beaglebone:/etc/init.d# java -version
-bash: java: command not found
root@beaglebone:/etc/init.d# export PATH=$PATH:/bin/jdk1.7.0_60/bin
root@beaglebone:/etc/init.d# export JAVA_HOME=/bin/jdk1.7.0_60
root@beaglebone:/etc/init.d# java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) Client VM (build 24.60-b09, mixed mode)
root@beaglebone:/etc/init.d#
我想在启动时编写脚本来设置java,然后运行一些java程序。所以我写了一个脚本“helium_startup.sh”并将其放在init.d中,脚本如下所示:
export PATH=$PATH:/bin/jdk1.7.0_60/bin
export JAVA_HOME=/bin/jdk1.7.0_60
我还没有编写我想在这里运行的程序,但我想我可以在这两行之后放置一行来运行它,对吗?然后我使用update-rc.d来创建链接:
root@beaglebone:/etc/init.d# update-rc.d helium_startup.sh defaults
update-rc.d: using dependency based boot sequencing
insserv: warning: script 'helium_startup.sh' missing LSB tags and overrides
我相信警告不影响任何事情?我检查了/etc/rc5.d以验证其中一个链接是否已完成:
root@beaglebone:~# cd /etc/rc5.d
root@beaglebone:/etc/rc5.d# ls
README S01sudo S03loadcpufreq S04wicd
S01boot_scripts.sh S01xrdp S03rsync S05saned
S01bootlogs S02apache2 S03ssh S06rc.local
S01capemgr.sh S03acpid S03udhcpd S06rmnologin
S01hostapd S03cron S04avahi-daemon
S01motd S03dbus S04cpufrequtils
S01rsyslog S03helium_startup.sh S04lightdm
并且,链接似乎是针对每个运行级别进行的。然后我重新启动Beaglebone(我尝试通过“重启”,拔掉它,然后按下电源按钮)并尝试检查java的版本:
root@beaglebone:/etc/rc5.d# java -version
-bash: java: command not found
它失败了。我是Debian(以及一般的Linux)的新手,这是我第一次使用BeagleBone Black,我不确定是什么问题。我还尝试在/etc/rc.local中设置2行来设置java的PATH,但这也不起作用。
非常感谢任何帮助。
布兰登
答案 0 :(得分:0)
您无法在init脚本中永久设置环境变量(PATH)。适当的位置是/etc/profile.d