Debian /etc/init.d/脚本没有运行?

时间:2015-01-25 20:31:31

标签: java linux debian beagleboneblack

我正在使用运行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,但这也不起作用。

非常感谢任何帮助。

布兰登

1 个答案:

答案 0 :(得分:0)

您无法在init脚本中永久设置环境变量(PATH)。适当的位置是/etc/profile.d

中的脚本