Avatar billede walker Nybegynder
25. september 2002 - 08:58 Der er 11 kommentarer og
3 løsninger

Kan et java program kører i baggrunden og stop med andet prog?

Hej
Jeg vil lige hører om der er muligt at køre et java program i baggrunden? Dvs. Hvis jeg starter den i en konsol, så startes programmet, men holder ikke konsollen?
Og...
Kan det lade sig gøre at stoppe det med et andet lille java program? Altså, kan jeg kommunikere med et javaprogram fra et andet via f.eks streams ?

MVH
Walker
Avatar billede dsj Nybegynder
25. september 2002 - 13:04 #1
Det kan lade sig gøre på linux at have et program kørende i "daemon-mode", hvordan ved jeg ikke helt, men man kan lægge det ind som en service der starter op sammen med linux og kører i "baggrunden" (daemon-mode).

Hvis du vil stoppe det med et andet program er du nødt til at give det besked via "netværket". Du bruger altså en socket-connection til at sende en besked til 127.0.0.1, som er localhost - den samme maskine. Denne teknik anvendes i server-applikationer, hvor du starter serveren med kommandoen -start og lukker ned med -stop. Faktisk starter man en ny instans af serveren, som så sender en besked til den allerede kørende instans om at lukke ned (via en Socket eller DatagramSocket).

Da du kobler streams på socket's, er det måden at gøre det på med streams :)
Avatar billede disky Nybegynder
25. september 2002 - 17:12 #2
du kan kommunikere via sockets
Avatar billede walker Nybegynder
25. september 2002 - 19:00 #3
Okay, tænkte nok det med streams... Men hvad med at få java programmet til at køre i deamon-mode ? Hvordan ligger jeg den ind som en service?
Avatar billede disky Nybegynder
25. september 2002 - 19:14 #4
Hvis dit tråd objekt hedder minTråd går du:

minTråd.setDeamon(true);
Avatar billede dsj Nybegynder
25. september 2002 - 21:21 #5
Disky >> Det får kun en tråd til at køre i baggrunden, hvis hele applikationen (incl JVM) skal køre i deamon-mode, skal det gøres på OS-niveau.
Avatar billede disky Nybegynder
25. september 2002 - 21:24 #6
hvis du tænker på at lave noget i /etc/rc3.d/ som starter når du lander på runlevel 3 kører det ikke nødvendigvis som deamon af den grund, men det kører i baggrunden.
Avatar billede walker Nybegynder
26. september 2002 - 09:55 #7
Jeg forstår ikke helt hvad i mener..
Jeg har prøvet at sætte alle mine tråde til "setDeamon(true)" men så afslutter programmet med det samme, og det kører ikke i baggrunden.
Jeg vil gerne have jeg kan starte og stoppe mit program både under startup, og i en remote shell. Hvis jeg starter den i en remote shell, f.eks SSH, afslutter programmet når jeg afslutter shell'en. Hvordan gør jeg det?

Mvh
Walker :-)
Avatar billede dsj Nybegynder
26. september 2002 - 13:22 #8
Når du kører metoden "setDeamon(true)" på en tråd betyder det, at applikationen ikke venter på den. Dvs. at hvis ikke der er andre almindelige tråde (som ikke kører i deamon-mode) lukker applikaitonen ned.

"setDeamon(true)" er faktisk slet ikke noget du skal bekymre dig om. Metoden vedrører enkelte tråde, mens det du vil vedrører en hel proces.

Hvilket styresystem er det helt præcist du bruger i denne sammmenhæng??
Avatar billede walker Nybegynder
26. september 2002 - 15:11 #9
Det er en RedHat maskine... Faktisk lidt ombygget redhat, nærmere en SME server, men bygget på en RedHat...
Avatar billede dsj Nybegynder
26. september 2002 - 16:13 #10
Som disky nævner skal du have din applikation ind under "/etc/rc3.d/", så den bliver startet op og kører i baggrunden. Hvordan ved jeg ikke, der må du kigge på http://www.sslug.dk

Hvad jeg ved om linux ligger på et noget generelt niveau :)
Avatar billede walker Nybegynder
27. september 2002 - 17:42 #11
Jeg har prøvet at smide et script ind under /etc/rc3.d/ som starter programmet, men det start ikke under opstarten?
Avatar billede walker Nybegynder
04. oktober 2002 - 14:12 #12
Når jeg f.eks starter min OpenSSH-server skriver jeg :
/sbin/service sshd start
Hvordan får jeg et program til at være sådan en service?
Avatar billede walker Nybegynder
06. oktober 2002 - 11:22 #13
hmm
Avatar billede dsj Nybegynder
06. oktober 2002 - 12:25 #14
Ja beklager, kan ikke rigtig bidrage med mere :) Min viden om driften i Linux er begrænset til det generelle...
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

IT-JOB

Csis Security Group A/S

Sales Executive

Netcompany A/S

Network Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

IT-Sikkerhedsrådgiver til Cyberdivisionen i Hvidovre