Commons Daemon 可以帮你实现将一个普通的 Java 应用编程系统的一个后台服务。
例如 Tomcat 就是利用这个项目来实现作为 Linux 和 Windows 的服务启动和停止的。
示例代码:
/** * Launch the Engine from a variety of sources, either through a main() or invoked through * Apache Daemon. */ public class EngineLauncher implements Daemon { private static final Log4J log = Log4J.getLog(); private static Engine engine = null; private static EngineLauncher engineLauncherInstance = new EngineLauncher(); /** * The Java entry point. * @param args Command line arguments, all ignored. */ public static void main(String[] args) { // the main routine is only here so I can also run the app from the command line engineLauncherInstance.initialize(); Scanner sc = new Scanner(System.in); // wait until receive stop command from keyboard System.out.printf("Enter 'stop' to halt: "); while(!sc.nextLine().toLowerCase().equals("stop")); if (!engine.isStopped()) { engineLauncherInstance.terminate(); } } /** * Static methods called by prunsrv to start/stop * the Windows service. Pass the argument "start" * to start the service, and pass "stop" to * stop the service. * * Taken lock, stock and barrel from Christopher Pierce's blog at http://blog.platinumsolutions.com/node/234 * * @param args Arguments from prunsrv command line **/ public static void windowsService(String args[]) { String cmd = "start"; if (args.length > 0) { cmd = args[0]; } if ("start".equals(cmd)) { engineLauncherInstance.windowsStart(); } else { engineLauncherInstance.windowsStop(); } } public void windowsStart() { log.debug("windowsStart called"); initialize(); while (!engine.isStopped()) { // don't return until stopped synchronized(this) { try { this.wait(60000); // wait 1 minute and check if stopped } catch(InterruptedException ie){} } } } public void windowsStop() { log.debug("windowsStop called"); terminate(); synchronized(this) { // stop the start loop this.notify(); } } // Implementing the Daemon interface is not required for Windows but is for Linux @Override public void init(DaemonContext arg0) throws Exception { log.debug("Daemon init"); } @Override public void start() { log.debug("Daemon start"); initialize(); } @Override public void stop() { log.debug("Daemon stop"); terminate(); } @Override public void destroy() { log.debug("Daemon destroy"); } /** * Do the work of starting the engine */ private void initialize() { if (engine == null) { log.info("Starting the Engine"); ... spawn threads etc } } /** * Cleanly stop the engine. */ public void terminate() { if (engine != null) { log.info("Stopping the Engine"); engine.stop(); log.info("Engine stopped"); } } }
Apache Commons Daemon 使用简介 1. 简介 Commons Daemon可以将一个普通的java应用程序作为linux或windows的后台服务,以daemon方式运行。例如Tomcat就是使用这个项目来实现作为Linux和Windows的服务启动/停止的。 它分为两个部分,一部分是用C写的,与操作系统交互,另一部分是用java写的,提供Daemon接口。Apache c
系统环境: CentOS 7 X64 JDK1.8 一: 安装jsvc 下载 commons-daemon的源码包 http://apache.fayea.com//commons/daemon/source/commons-daemon-1.0.15-src.zip 解压之后 cd src/native/unix/ 执行: export CFLAGS=-m64 export LDFLAGS=-m
Apache Commons Daemon简介 Apache Commons Daemon软件是用于将Java应用程序作为服务器进程运行的一组实用程序和Java支持类。这些在Unix术语中通常称为“守护进程”(因此得名)。在Windows上,它们称为“服务”。 前言 自1994年以来,Java编程语言获得了强有力的发展,并不仅仅是applet和客户端应用程序,在服务器应用程序领域也是安全可靠和高性
近日,由于自己学习dubbo开发,需要使用到zookeeper。 (查其他安装碰到此代码的朋友也别急着走,说不定触类旁通呢。) 自己电脑是windows10的系统,在zookeeper官方下载了最新版本的zip版本。 资源路径:http://mirrors.hust.edu.cn/apache/zookeeper/ 按照教程配置启动好zookeeper以后,本应顺利进入项目开发练习的。 不知道脑子
tags: java daemon 1、概述 1.1、为什么使用commons daemon 上一篇已对使用java service wrapper工具与java程序集成进行了讲解,java service wrapper使用简单,集成方法简单,不修改任何代码,一般情况下已满足需求。 但是,java service wrapper只对java程序的开启及关闭进行操作, 若需要对程序启动前及关闭前进
Procrun是一套让Java应用程序运行在WIN#@下更容易的库和应用程序。 Procrun服务应用程序 Prunsrv一个让应用程序作为服务运行的服务程序,它能转换任一应用程序作为服务运行。 Procrun监视器应用程序 Prunmgr是一个可视化应用程序,用来监视和配置procrun服务。 可用的命令行选项: //ES// 编辑服务的配置 这是一个默认的操作. 如果没有提供选
转自: Apache Commons Daemon简介说明 下文笔者讲述Apache Commons Daemon的功能简介说明,如下所示 Apache Commons Daemon的功能 用于将一个普通的java应用程序编程系统的后台服务 Commons Daemon框架由两部分组成: 一部分由C语言编写 一部分由java语言编写,并提供Daemon接口 例: 安装apache com