Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running a Java process in Windows even after the user is logged out

I have a batch file that starts a Java process in a Windows 2003 server. As per the security policy, the users of that machine are logged off forcefully, if the user is inactive for a certain period of time. The problem is that when the user is logged out, the process also dies.

I scheduled a new task (Control Panel -> Scheduled Tasks) and selected the option of 'When my computer starts' and gave the user account details there. But it doesn't seem to have any effect, the user is still logged out and the process dies. Is a reboot necessary to make this change effective? And after the reboot, will I achieve what I'm expecting (keeping the process alive)?

Alternatively, will running this process as a Windows Service solve the problem? If so, can you please let me know how I can make a Java program or a batch file to run as a Windows Service? I would prefer not to use any other third party tools or libraries.

Thanks

like image 700
cdoe Avatar asked Feb 16 '09 12:02

cdoe


2 Answers

If you want it to run under Scheduled tasks you have to make sure you don't have "only run when user logged in" checked, which usually means you need to supply a password.

A windows service would be the normal way to do this: the Java service wrapper is 3rd party but loads of people use it.

If you really wanted to not use a 3rd party method you could use svrany.exe (http://support.microsoft.com/kb/137890) on WIndows NT or later, but it is not designed specifically for Java.

like image 95
Nick Fortescue Avatar answered Oct 04 '22 00:10

Nick Fortescue


Wrapping the process with srvany.exe and launching as a service would work as well.

http://support.microsoft.com/kb/137890

like image 35
Jesse Weigert Avatar answered Oct 03 '22 23:10

Jesse Weigert