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

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

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



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


Python代码

  1. ./jsvc -help
  2. Usage: jsvc [-options] class [args…]
  3. Where options include:
  4. -help | –help | -?
  5. show this help page (implies -nodetach)
  6. -jvm <JVM name>
  7. use a specific Java Virtual Machine. Available JVMs:
  8. ‘client’ ‘server’
  9. -client
  10. use a client Java Virtual Machine.
  11. -server
  12. use a server Java Virtual Machine.
  13. -cp / -classpath <directories and zip/jar files>
  14. set search path for service classes and resouces
  15. -home <directory>
  16. set the path of your JDK or JRE installation (or set
  17. the JAVA_HOME environment variable)
  18. -version
  19. show the current Java environment version (to check
  20. correctness of -home and -jvm. Implies -nodetach)
  21. -showversion
  22. show the current Java environment version (to check
  23. correctness of -home and -jvm) and continue execution.
  24. -nodetach
  25. don’t detach from parent process and become a daemon
  26. -debug 


 

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



Python代码

#!/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 


 

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

sh start.sh start 启动服务

sh start.sh stop 停止服务 sh start.sh restart 重启服务

本文来源于"阿里中间件团队播客",原文发表时间" 2012-09-20  "

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