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
中的脚本
我正在使用 运行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