我有一个批处理文件,可以在Windows 2003服务器中启动Java进程。根据安全策略,如果用户在一段时间内处于非活动状态,则该计算机的用户将被强制注销。问题是,当用户注销时,该过程也会死亡。
我安排了一项新任务(控制面板 - >计划任务)并选择了“当我的计算机启动时”选项,并在那里提供了用户帐户详细信息。但它似乎没有任何影响,用户仍然退出并且进程终止。是否需要重新启动才能使此更改生效?重启后,我能实现我所期待的(保持流程存活)吗?
或者,将此过程作为Windows服务运行解决问题?如果是这样,您能告诉我如何将Java程序或批处理文件作为Windows服务运行吗?我不想使用任何其他第三方工具或库。
由于
答案 0 :(得分:11)
如果您希望它在计划任务下运行,您必须确保没有“仅在用户登录时运行”,这通常意味着您需要提供密码。
Windows服务是正常的方式:Java service wrapper是第三方,但很多人都使用它。
如果您真的不想使用第三方方法,可以在WIndows NT或更高版本上使用svrany.exe (http://support.microsoft.com/kb/137890),但它不是专为Java设计的。
答案 1 :(得分:5)
使用srvany.exe包装进程并作为服务启动也可以。
答案 2 :(得分:1)
我正在使用Java Service Wrapper作为Windows服务启动java进程。 我猜它的效果与上一篇文章中提到的srvany.exe类似。
答案 3 :(得分:0)
答案 4 :(得分:0)
根据我的分析,
Idle Solution将编写一个VC ++(.net)Windows服务创建程序,将.bat / .exe作为系统服务启动,并向SCM提供所有必需的回调方法。
注意: 1.使用srvany.exe包装进程无法正常工作,因为它没有对SCM(服务控制管理器)的任何回调过程。 2.而java服务Wrapper是第三方API(许多是LGPL许可的)。