Debian /etc/init.d/ 脚本不是 运行?

Debian /etc/init.d/ script not running?

我正在使用 运行s Debian 的 BeagleBone Black(我相信 BeagleBone 网站提供 link 的最新版本)并且我最近安装了 Java它。每次启动开发板时,我都必须再次设置 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 创建 links:

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 以验证其中一个 link 已创建:

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

而且,link似乎是为每个 运行 级别制作的。然后我重新启动 Beaglebone(我尝试通过 "reboot"、拔下它并按下电源按钮)并尝试检查 java:

的版本
root@beaglebone:/etc/rc5.d# java -version
-bash: java: command not found

它失败了。我是 Debian 的新手(通常 Linux),这是我第一次使用 BeagleBone Black,我不确定问题出在哪里。我还尝试将 2 行设置为 /etc/rc.local 中的 java 的路径,但这也没有用。

如有任何帮助,我们将不胜感激。

-布兰登

您不能在初始化脚本中永久设置环境变量 (PATH)。合适的地方是 /etc/profile.d

中的脚本