0

I have OpenSuse 11.4.

I start some on-boot scripts inside /etc/init/boot.local.

Where could I move those scripts so that they would be started after all (most) environment variables got initialized?

These scripts need to be started really once, so things such as /etc/profile.local aren't candidates.

I try to start Sonar, which searches for Java in some strange way (instead just by look up JAVA_HOME), and it fails to find Java (logs don't tell me exactly why). From command line, after boot, it can be started (as root and as user).

I suppose, there are some environment variables which get initialized inside services. Can it be that way?

EDIT: sonar.sh from sonar/bin/linux-x86-64
EDIT: sonar.log from sonar/logs

java.is.for.desktop
  • 889
  • 3
  • 9
  • 15

2 Answers2

1

I'm not familiar with openSUSE, but in my opinion, the best way is export the environment variables before starting the services in /etc/init/boot.local.


EDIT

Unable to start JVM: No such file or directory

Does JAVA_HOME/bin/ is already in your PATH?

quanta
  • 50,327
  • 19
  • 152
  • 213
0

Normally global variables are not initialized in init-scripts. The variables you need get propably initialized in your shell by /etc/profile.local or some other shell-configuration file.

If a java is being found from the shell where is it located?

Nils
  • 7,657
  • 3
  • 31
  • 71
  • In general, for init scripts either use the fully qualified path to the executable and setup the exact environment variables you need. – Joshua Hoblitt Aug 22 '11 at 09:32