我正在寻找将Java应用程序作为* NIX守护程序或Windows服务运行的最佳方法。 我查看了Java Service WrapperApache Commons项目'jsvc'Apache Commons项目'procrun' 到目前为止,Java Service Wrapper看起来是最好的选择...但是,我想知道是否还有其他“开源友好”许可产品。

===============>>#1 票数:18 已采纳

我自己在Java Service Wrapper上取得了很大的成功。 我没有看过其他人,但ServiceWrapper的主要优势是:

  • 很棒的x平台支持 - 我已经在Windows和Linux上使用它,并且发现两者都很容易
  • 可靠的文档 - 文档清晰明了,并提供了很好的示例
  • 深入的每平台支持 - 窗口服务管理系统中有一些独特的功能,服务包装器(无重启)完全支持。 在Windows上,您甚至可以在进程列表中看到您的应用程序名称,而不仅仅是“java.exe”。
  • 符合标准 - 与许多ad-hoc Java init脚本不同,服务包装器的脚本往往符合LSB标准。 如果你想要Linux Heartbeat / HA之类的高可用性管理,这可能会变得非常重要。

无论如何,只是我的2美分...... :)

===============>>#2 票数:3

另一个选择是WinRun4J 这只是Windows,但有一些有用的功能:

  • 32位和64位支持
  • 用于访问事件日志和注册表的API
  • 可以注册服务依赖于其他服务(即serviceA和serviceB必须在serviceC之前启动)

它也是开源友好(CPL)所以没有使用限制。

(完全披露:我在这个项目上工作)。

===============>>#3 票数:1

您需要支持哪些特殊属性(如操作系统引导资源管理)? 否则,对于Unix,您应该能够通过编写适当的init.d脚本并将应用程序设置为自动启动来守护应用程序。

  ask by Matt Cummings translate from so

未解决问题?本站智能推荐:

2回复

使用jsvc守护Java程序

我正在尝试使用JSVC将Java程序作为守护程序运行。 这是我使用的简单代码: } 并执行以下命令:jsvc -debug -home $ JAVA_HOME -cp /path/to/commons-daemon.jar:/path/to/DaemonExample.jar-用
1回复

奇怪的行为在循环中重新运行Java应用程序

Unix守护程序循环运行一个脚本,该脚本调用一个Java程序:java {java_args} myClas.jar Java程序是具有多个线程的繁重程序。 问题很奇怪:第一次执行按预期工作。 但是第二次执行被卡在某些地方,我找不到原因(很难调试)。 是否有可能在第一次执行完
5回复

Java作为Unix服务运行

这个问题已经在这里有了答案: 如何守护Java程序? 11个答案 我已经用Java构建了一个小守护进程,我想将它作为服务在Unix下运行(例如Debian 5)。 我读过有可能使用Java包装器,但是难道没有其他更容易实现的选项吗? 我不能只使用xxx jav
1回复

是否可以将.NET Core应用程序作为Windows Service和Linux守护进程运行

是否可以使用相同的代码创建一个.NET Core应用程序,使其可以作为Windows服务和Linux上的守护进程运行? 你有例子/概念证明吗?
1回复

在Windows上下文中,术语“守护程序”和“服务”可以互换吗?

据我了解,Daemon在Unix世界中是一个流行术语,指的是无需终端或人为干预即可运行的进程。 它会连续运行,直到完成其任务。 它可能完成任务,稍等片刻,然后重复该过程。 在Windows世界中,我通常会听到人们谈论服务。 服务似乎符合守护程序的描述。 他们只是同一事物的两个词
1回复

守护程序和应用程序控制[重复]

这个问题已经在这里有了答案: 控制守护程序和应用程序的差异 1回答 这是一个重复的问题:仅使用更新的标签控制守护程序和应用程序的差异,以便更多的人可以查看和评论。 嗨,大家好, 关于这个优秀的职位: nohup和守护程序之间有什么区别? 我
1回复

通过rsh运行守护程序

我想在Unix的远程计算机中将程序作为守护程序运行。 我有rsh连接,我希望程序在断开连接后运行。 假设我有两个程序:util.cpp和forker.cpp。 util.cpp是一些实用程序,出于我们的目的,请使其成为无限根。 实用程序 forker.cpp需要一些程
1回复

将python守护程序公开为服务

因此,我已经能够从python脚本中提取两个非常有价值的功能。 首先是能够从命令行将python函数作为服务运行。 为了简单起见,假设python脚本采用了命令行参数。 类似于以下内容: 然后我可以通过运行python file.py somearg全局访问python file.
1回复

使用upstart守护程序运行多个工作程序

我想知道是否有可能与新贵多个php worker。 我的问题是,一个工人不足以完成我的任务,所以我很想拥有2-3个工人。 更好的办法是自动扩展工作人员的数量。 我正在使用: 在运行php脚本时作为守护进程 thx @Jonathan找到
1回复

最佳做法:Unix守护程序的PID文件

对于Unix守护程序的父进程或子进程来说,是否为写PID文件(针对子进程)是否被认为是最佳实践。