将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  "

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值