Kører en Java-proces i Windows, selv efter at brugeren er logget ud

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en batch-fil, der starter en Java-proces på en Windows 2003-server. I henhold til sikkerhedspolitikken logges brugerne af den pågældende maskine kraftigt, hvis brugeren er inaktiv i en bestemt periode. Problemet er, at når brugeren er logget ud, dør processen også.


Jeg har planlagt en ny opgave (Kontrolpanel -> Planlagte opgaver) og valgt muligheden for 'Når min computer starter' og gav brugerkontooplysningerne der. Men det synes ikke at have nogen virkning, brugeren er stadig logget ud og processen dør. Er en omstart nødvendig for at gøre denne ændring effektiv? Og efter genstart vil jeg nå det, jeg forventer (holder processen i live )?


Alternativt kører denne proces som en Windows-service, løse problemet? Hvis ja, kan du venligst lade mig vide, hvordan jeg kan gøre et Java-program eller en batchfil til at køre som en Windows-tjeneste? Jeg foretrækker ikke at bruge andre tredjepartsværktøjer eller biblioteker.


Tak

Bedste reference


Indpakning af processen med srvany.exe og lancering som en tjeneste ville også fungere.


http://support.microsoft.com/kb/137890[2]

Andre referencer 1


Hvis du vil have det til at køre under Planlagte opgaver, skal du sørge for at du ikke har 'kørsel', når brugeren er logget ind ', hvilket normalt betyder at du skal angive et kodeord.


En Windows-tjeneste ville være den normale måde at gøre dette på: Java-serviceindpakningen er 3. part, men mange mennesker bruger det. [3]


Hvis du virkelig ikke ville bruge en tredjepartsmetode, kunne du bruge svrany.exe (http://support.microsoft.com/kb/137890) på WIndows NT eller senere, men det er ikke designet specifikt til Java. [4]

Andre referencer 2


Jeg bruger Java Service Wrapper til at starte java processen som Windows service.
Jeg tror det virker ligner den srvany.exe, der er nævnt i den foregående post. [5]

Andre referencer 3


Jeg ved ikke, det er relevant, men vi bruger et flag til jvm, så det lukker ikke af logoffs


"java -Xrs"


Link til solens beskrivelse af -Xrs [6]

Andre referencer 4


Ifølge min analyse,


Den inaktiv løsning vil skrive et VC ++ (.net) Windows Service-oprettelsesprogram til at starte .bat/.exe som en systemtjeneste med alle de nødvendige tilbageføringsmetoder til SCM.


Bemærk :
1. Indpakning af processen med srvany.exe ville ikke fungere, da den ikke har nogen tilbagevendende proces til SCM (Service Control Manager).
2. Og java service Wrapper er en tredjepart API (mange er LGPL licenseret).