将java程序成为linux的系统服务

简介: 在分布式环境开发中经常会使用socket,或者使用rmi来对外提供服务,常用的办法是将写一个java代码,然后部署到服务器上,但是问题来了。如何将这个服务成为一个可靠的系统服务,不会应为风吹草动就挂了,那就不好了。 所以想到使用apache commons 下面的daemon框架来充当守护进程。首

在分布式环境开发中经常会使用socket,或者使用rmi来对外提供服务,常用的办法是将写一个java代码,然后部署到服务器上,但是问题来了。如何将这个服务成为一个可靠的系统服务,不会应为风吹草动就挂了,那就不好了。

所以想到使用apache commons 下面的daemon框架来充当守护进程。首先需要在系统中安装jsvc工具具体操作方法这里不作详细说明,请查看 http://commons.apache.org/daemon/jsvc.html

最后jsvc安装成功之后需要有执行 jsvc -help 会显示以下内容:

Python代码

  1. ./jsvc -help  
    Usage: jsvc [-options] class [args...]  
      
    Where options include:  
      
        -help | --help | -?  
            show this help page (implies -nodetach)  
        -jvm <JVM name>  
            use a specific Java Virtual Machine. Available JVMs:  
                'client' 'server'  
        -client  
            use a client Java Virtual Machine.  
        -server  
            use a server Java Virtual Machine.  
        -cp / -classpath <directories and zip/jar files>  
            set search path for service classes and resouces  
        -home <directory>  
            set the path of your JDK or JRE installation (or set  
            the JAVA_HOME environment variable)  
        -version  
            show the current Java environment version (to check  
            correctness of -home and -jvm. Implies -nodetach)  
        -showversion  
            show the current Java environment version (to check  
            correctness of -home and -jvm) and continue execution.  
        -nodetach  
            don't detach from parent process and become a daemon  
        -debug  


另外需要编写一个shell脚本,来控制该系统服务启动或者停止,详细请操作如下脚本:

Python代码

  1. #!/bin/bash  
      
      
    CLASSPATH=./trigger-server/terminator-job-trigger-server-3.1.0-SNAPSHOT.jar  
      
    for P in `ls -F ./trigger-server/dependency/`  
    do  
     CLASSPATH=$CLASSPATH:./trigger-server/dependency/$P  
    done  
      
      
    #echo $CLASSPATH  
      
    export JAVA_HOME=/opt/taobao/java  
      
      
      
    start(){  
       echo "starting"   
      
      
       /home/baisui/commons-daemon-1.0.10-native-src/unix/jsvc  -pidfile ./pidfile.pid -outfile ./logs/trigger_server_out.log -errfile ./logs/trigger_server_err.log  -cp $CLASSPATH com.taobao.terminator.trigger.LaunchServer  
      
      
      
       echo "start successful"  
    }  
      
    stop(){  
     /home/baisui/commons-daemon-1.0.10-native-src/unix/jsvc -stop -pidfile ./pidfile.pid -cp $CLASSPATH com.taobao.terminator.trigger.LaunchServer  
      
     echo "trigger_server stopped"  
    }  
      
      
      
      
    case "$1" in  
        start)  
            start  
        ;;  
        stop)  
            stop  
        ;;  
        restart)  
            stop  
            start  
        ;;  
        *)  
            usage  
        ;;  
    esac       


 

这样可以使用一下脚本来控制系统服务的状态了:

  1. sh start.sh start 启动服务
  2. sh start.sh stop  停止服务
  3. sh start.sh restart 重启服务
相关文章
|
3月前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
385 8
|
3月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
312 24
|
3月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
206 11
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
268 10
|
3月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
603 4
|
3月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
349 98
|
3月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
441 0
|
3月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
336 146
|
4月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。

热门文章

最新文章