Avatar billede dsj Nybegynder
14. december 2002 - 22:30 Der er 3 kommentarer og
1 løsning

Java-app som service i Linux

Hvordan lægger man en java-applikation (RMI server) ind som baggrundsproces under Linux (Mandrake)??

Jeg ved man lægger et script ind i /etc/init.d/script
Men hvad skal der helt præcist stå i scriptet for at starte java-applikationen?

Når nu jeg manuelt starter og stopper min java-app, skriver jeg følgende:

#/bin/bash/
/usr/java/j2sdk1.4.0_02/bin/java -classpath "..." asv.RMIServer <kommando> &

hvor <kommando> er enten -start eller -stop

Er det noget lignende jeg skal skrive i scriptet ??
Avatar billede arne_v Ekspert
14. december 2002 - 22:41 #1
Normalt så skriver man præcis det samme i et script som
ved kommando-prompten, så prøve da med det.
Avatar billede dsj Nybegynder
14. december 2002 - 23:04 #2
tjaaa så fandt jeg ud af det selv...

Hvis man skriver det samme som i shell mener jeg ikke at programmet bliver lagt ind som en decideret daemon service, men nu fik jeg jo JBoss til at køre som en service, så jeg tog det medfølgende script-filer og ændrede lidt i dem og tadaaa, første gang lykkedes det :)
Avatar billede disky Nybegynder
14. december 2002 - 23:05 #3
arne det er ikke korrekt, i /etc/init.d skal der laves et helt lille script

Men det man skrive i shell'en skal også stå i den fil.

dsj:
Her er min /etc/init.d/smb som bruges til at starte og stoppe samba serveren med.

Den er ret simpel og skulle være let at rette så den passer til din RMI service:
#!/bin/sh
#
# chkconfig: 345 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
#              used to provide SMB network services.

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Check that smb.conf exists.
[ -f /etc/samba/smb.conf ] || exit 0

# See how we were called.
case "$1" in
  start)
        echo -n "Starting SMB services: "
        daemon smbd -D
        daemon nmbd -D
        echo
        touch /var/lock/subsys/smb
        ;;
  stop)
        echo -n "Shutting down SMB services: "
        killproc smbd
        killproc nmbd
        rm -f /var/lock/subsys/smb
        echo ""
        ;;
  status)
        status smbd
        status nmbd
        ;;
  restart)
        echo -n "Restarting SMB services: "
        $0 stop
        $0 start
        echo "done."
        ;;
  *)
        echo "Usage: smb {start|stop|restart|status}"
        exit 1
esac


I /etc/rc3.d hvis du skal have den til at starte i runlevel3, som er det normale runlevel for en linux server. laver du en symbols link fra f.eks.

S99rmi til /etc/init.d/rmi

hvis vi siger din batch fil hedder 'rmi'

S betyder start af service, 99 er et nummer der beskriver rækkefølgen af services.

Du skal eventuelt også have en /etc/rc3.d/K99rmi

Som bliver udført når du skifter fra runlevel 3

Den præcise path er ikke nødvendigvis /etc/rc3.d det afhænger af linux distribution.
Avatar billede dsj Nybegynder
14. december 2002 - 23:12 #4
det jeg har lavet ligner cirka meget det disky har skrevet...

synd du lige kom lidt sent, ellers tak for hjælpen disky :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester