How do I run a java app and load a driver after the network loads but before the login page?

I’m an openSUSE Newbie :(. I just started working on systems in our lab running SUSE 12.2. I need to load a java app and a driver after the network loads but before the login screen.
The kernel is 3.4.6-2.10-desktop.
The java app loads with the command # java -jar /path/to/Java_App.jar
The driver can be loaded with # /path/to/mkdrv
or # /path/to/loaddriver

I have searched for methods to run these two commands and it seems the best way is to make a file in /etc/init/d using skeleton and then “link” it somehow. However most posts simply say “Use skeleton” or some other solution that requires the user to be much more than a beginner. I would really appreciate a solution a beginner can implement.

So if you have terminal commands to do this and being root is OK, it could be loaded from the /etc/init.d/after.local script. Have a look at by blog on making that work here: systemd and using the after.local script in openSUSE

Thank You,

On 08/08/2013 09:06 PM, JibsMan wrote:
> on systems in our lab running SUSE 12.2

just a note for you to think about:

openSUSE 12.2 goes end-of-life on 15 Jan 2014 (cite: and the method you use to accomplish
the task you ask about will not work in 12.3 (because systemv and
its init.d is depreciated in deference to systemd…

my point is the decision is up to you:

-do it now and then again in January (using a different method on a
new system)
-upgrade to 12.3 now (it is supported to September 2014)
-keep using an unsupported (and non-security patched) openSUSE after
January (not recommended)


JD & Denver,
Thanks for the tips. Good stuff.

I did find the solution.
in /etc/init.d create a file for whatever you want to load.

vi myprogram
In this put the following:

# /etc/init.d/myprogram(replace with your filename)
# LSB compatible service control script; see [LSB Referenced Specifications](
# Provides:          YourProgramNameHere 
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: Ignitor
# Description:       Start YourProgramNameHere
. /etc/rc.status
# Reset status of this service
case "$1" in
 echo -n "Starting YourProgramNameHere"
 path/to/YourProgramNameHere  1> /root/YourProgramNameHerej.log 2>/root/YourProgramNameHerej.err&
 # Remember status and be verbose
 rc_status -v
 echo -n "Stopping YourProgramNameHere"
 line=$(ps aux | grep YourProgramNameHere)
 if  -n "$line" ]; then
  columns=( $line )
 if  -n "$pid" ]; then
  kill $pid
 rc_status -v
 echo "Usage: $0 {start|stop}"
 exit 1

Then run this command:
ln –s /etc/init.d/ YourProgramNameHere rc3.d/S99YourProgramNameHere
You don’t have to use S99, you can use the next number in the sequence in the rc3.d directory. IE: if S15 is the highest number, you can use S16. Your choice.

Then run this command:
./myprogram start

Your program should load.
Reboot and your program should load before login.
This solution was provided to me by a co-worker. I hope I have written everything out correctly!

Happy to hear you found your solution. I took the liberty of editing your post and to place your bash script iside of code # tags. Its an option in the advanced message editor and something we suggest you use for any such code postings.

Thank You,