linux怎么将可运行的程序注册成系统服务

问题描述

我将openfire源码编译后把它注册成linux系统服务,脚本如下:#!/bin/sh##openfirectlStopsandstartstheOpenfireXMPPservice.##chkconfig:-6436#description:OpenfireisanXMPPserver,whichisaserverthatfacilitates#XMLbasedcommunication,suchaschat.#config:/opt/openfire/conf/openfire.xml#config:/etc/sysconfig/openfire#pidfile:/var/run/openfire.pid##Thisscriptmanagestheopenfiredaemonprocess.Thisscriptshould#onlyberunasrootandmaydoubleasaninitscriptifdesired.You#cansymlinkitintoyourrcdirectoriesmanually,orifyouhave#chkconfigavailable,youcancopy/symlinkitintoyourinit.ddirectory#andchkconfig--addit.It'srecommendedtonameitopenfireinsteadof#openfirectlintheinit.ddirectory.
解决方案二:

解决方案三:
#Beginsetupwork
解决方案四:

解决方案五:
InitializationCMD=$1PATH="/sbin:/bin:/usr/bin:/usr/sbin"RETVAL=0#Makesurewearerunningasrootset`/usr/bin/id`if[$1!="uid=0(root)"];thenecho"$0:mustberunasroot"exit1fi#Getconfigfromsysconfigifonasystemthatsupportsit.[-f"/etc/sysconfig/openfire"]&&./etc/sysconfig/openfire#Ifopenfireuserisnotsetelsewhere,settodaemon.[-z"$OPENFIRE_USER"]&&OPENFIRE_USER="daemon"#Ifpidfilepathisnotsetelsewhere,setto/var/run/openfire.pid.[-z"$OPENFIRE_PIDFILE"]&&OPENFIRE_PIDFILE="/var/run/openfire.pid"#-----------------------------------------------------------------#Ifaopenfirehomevariablehasnotbeenspecified,trytodetermineit.if[-z"$OPENFIRE_HOME"-o!-d"$OPENFIRE_HOME"];thenif[-d"/usr/share/openfire"];thenOPENFIRE_HOME="/usr/share/openfire"elif[-d"/usr/local/openfire"];thenOPENFIRE_HOME="/usr/local/openfire"elif[-d"/opt/openfire"];thenOPENFIRE_HOME="/opt/openfire"elseecho"CouldnotfindOpenfireinstallationunder/opt,/usr/share,or/usr/local."if[-f"/etc/sysconfig"];thenecho"PleasespecifytheOpenfireinstallationlocationasvariableOPENFIRE_HOME"echo"in/etc/sysconfig/openfire."fiexit1fifi#Iflogpathisnotsetalready,setto$OPENFIRE_HOME/logs.[-z"$OPENFIRE_LOGDIR"]&&OPENFIRE_LOGDIR="${OPENFIRE_HOME}/logs"#Attempttolocatejavainstallation.if[-z"$JAVA_HOME"];thenif[-d"${OPENFIRE_HOME}/jre"];thenJAVA_HOME="${OPENFIRE_HOME}/jre"elif[-d"/etc/alternatives/jre"];thenJAVA_HOME="/etc/alternatives/jre"elsejdks=`ls-r1d/usr/java/j*`forjdkin$jdks;doif[-f"${jdk}/bin/java"];thenJAVA_HOME="$jdk"breakfidoneif[-z"$JAVA_HOME"];thenif[-d"/usr/java/jdk1.6.0_45"-a-d"/usr/java/jdk1.6.0_45/bin"];thenJAVA_HOME="/usr/java/jdk1.6.0_45"fifififiJAVACMD="${JAVA_HOME}/bin/java"if[!-d"$JAVA_HOME"-o!-x"$JAVACMD"];thenecho"Error:JAVA_HOMEisnotdefinedcorrectly."echo"Cannotsureexecute$JAVACMD."exit1fi#PreparelocationofopenfirelibrariesOPENFIRE_LIB="${OPENFIRE_HOME}/lib"#PrepareopenfirecommandlineOPENFIRE_OPTS="${OPENFIRE_OPTS}-DopenfireHome=${OPENFIRE_HOME}-Dopenfire.lib.dir=${OPENFIRE_LIB}"#Preparelocaljavaclasspathif[-z"$LOCALCLASSPATH"];thenLOCALCLASSPATH="${OPENFIRE_LIB}/startup.jar"elseLOCALCLASSPATH="${OPENFIRE_LIB}/startup.jar:${LOCALCLASSPATH}"fi#ExportanynecessaryvariablesexportJAVA_HOMEJAVACMD#Lastly,preparethefullcommandthatwearegoingtorun.OPENFIRE_RUN_CMD="${JAVACMD}-server${OPENFIRE_OPTS}-classpath"${LOCALCLASSPATH}"-jar"${OPENFIRE_LIB}/startup.jar""
解决方案六:

解决方案七:
Endsetupwork
解决方案八:
##start(){OLD_PWD=`pwd`cd$OPENFIRE_LOGDIR#Startdaemons.echo"Startingopenfire:c"PID=`su-$OPENFIRE_USER-c"nohup$OPENFIRE_RUN_CMD>$OPENFIRE_LOGDIR/nohup.out2>&1&"`RETVAL=$?if[$RETVAL-eq0-a!-z"$OPENFIRE_PIDFILE"];thenecho$PID>$OPENFIRE_PIDFILEfiecho[$RETVAL-eq0-a-d/var/lock/subsys]&&touch/var/lock/subsys/openfiresleep1#allowsprompttoreturnecho"StartingopenfireOK!"cd$OLD_PWD}stop(){#Stopdaemons.echo"Shuttingdownopenfire:c"[-f"$OPENFIRE_PIDFILE"]&&kill`cat$OPENFIRE_PIDFILE`RETVAL=$?echo[$RETVAL-eq0-a-f"$OPENFIRE_PIDFILE"]&&rm-f$OPENFIRE_PIDFILE[$RETVAL-eq0-a-f"/var/lock/subsys/openfire"]&&rm-f/var/lock/subsys/openfire}restart(){stopsleep10#giveitafewmomentstoshutdownstart}condrestart(){[-e"/var/lock/subsys/openfire"]&&restartreturn0}status(){pid=`cat$OPENFIRE_PIDFILE2>&1`if["$?"="1"];thenecho"openfireisnotrunning"RETVAL=3elseps-p$pid>/dev/null2>&1if["$?"="0"];thenecho"openfireisrunning"RETVAL=0elseecho"openfireisnotrunning"RETVAL=1fifi}#Handlehowwewerecalled.case"$CMD"instart)start;;stop)stop;;restart)restart;;condrestart)condrestart;;reload)restart;;status)status;;*)echo"Usage$0{start|stop|restart|status|condrestart|reload}"RETVAL=1esacexit$RETVAL然后注册成服务可以运行正常,但是访问程序(即访问openfire)的时候,说无法连接到服务器请各位linux大神帮帮忙,看看是什么情况

解决方案

时间: 2024-09-24 09:23:03

linux怎么将可运行的程序注册成系统服务的相关文章

将Java程序注册成系统服务

你是不是在找将Java程序注册成系统服务的方法?试试Java Service Wrapper这个工具吧,你可以从这个网站上面下载你喜欢的版本:http://wrapper.tanukisoftware.org/ ,Java Service Wrapper提供了适合市面上流行的操作系统的版本. 使用Wrapper将Java程序注册成系统服务有三种方式可供选择: 第一种是使用WrapperSimpleApp 这个帮助类来运行你的程序,这个是最简单的方法,也是官方推荐使用的方式,但是这样可能会对你的程

如何将exe程序注册成系统服务的方法

  最近一段时间我们公司开发一款新的产品,要在服务器上运行一个服务端程序,为了方便我就希望能将这个程序注册成系统服务开机自动启动而不用每次重启系统都要手动启动程序.经过baidu和google这两位大神的帮助终于找到解决办法,在这里要用到微软提供的两个小工具"instsrv.exe"和"srvany.exe". Instsrv.exe可以给系统安装和删除服务 Srvany.exe可以让程序以服务的方式运行 1.先下载这两个程序然后放在同一个目录,我是直接放在D盘的,

怎样把exe程序注册成系统服务

  最近一段时间我们公司开发一款新的产品,要在服务器上运行一个服务端程序,为了方便我就希望能将这个程序注册成系统服务开机自动启动而不用每次重启系统都要手动启动程序.经过baidu和google这两位大神的帮助终于找到解决办法,在这里要用到微软提供的两个小工具"instsrv.exe"和"srvany.exe". Instsrv.exe可以给系统安装和删除服务 Srvany.exe可以让程序以服务的方式运行 1.先下载这两个程序然后放在同一个目录,我是直接放在D盘的,

Windows 7旗舰版系统下怎么把exe文件注册成系统服务

  1.首先到网上下载"instsrv.exe"工具用于系统安装和删除服务,然后下载"srvany.exe",可将程序以服务的方式运行; 2.将这两个小工具存放于同磁盘目录中,比如存放于D盘目录中; 3.然后在键盘上按"Win+R"打开"运行"窗口,输入"cmd"命令后按回车键,进入到命令提示符窗口; 4.在打开的命令提示符窗口中,输入下面命令注册服务: D:instsrv.exe tjserver d:s

Linux操作系统上定时运行Java程序的方法

  运行crontab -e编辑一个job. 例如 0 30 * * * /home/your_login/bin/java_PRogram | | | | | | | | | | | | | | -day of the week (0-6 with 0=Sunday). | | | -- month of the year (1-12), | | |_____day of the month (1-31), | | | |____hour (0-23), | minute (0-59), 更正

将批处理文件注册成服务

  将批处理文件注册成服务 前两天完成了将java程序注册成win服务,如今本人有一个java工程起重含有启动脚本startagent.bat.我想要达到的效果是:当系统启动的时候就自动调用startagent.bat脚本,于是开始网上寻求相关资料. 1.首先由师兄提示可以使用系统命令sc实现 sc create 服务名 binPath= .bat文件所在路径 start=auto (注意 =后面有空格,如果文件路径中含空格则使用引号引起来) 具体的参数可以使用sc /?来查看. 安装倒是挺顺利

将批处理文件注册成服务在系统启动的时候自动调用

 如何将批处理文件注册成服务,在系统启动的时候就自动调用startagent.bat脚本,下面是具体的实现过程,需要的朋友可以参考下 前两天完成了将java程序注册成win服务,如今本人有一个java工程起重含有启动脚本startagent.bat.我想要达到的效果是:当系统启动的时候就自动调用startagent.bat脚本,于是开始网上寻求相关资料.    1.首先由师兄提示可以使用系统命令sc实现    sc create 服务名 binPath= .bat文件所在路径 start=aut

linux基础-putty登陆目标板,退出如何停止正在运行的程序?

问题描述 putty登陆目标板,退出如何停止正在运行的程序? 本人初入linux,用putty登陆目标板,运行了一个控制蜂鸣器的小应用程序,退出后发现蜂鸣器一直保持最后状态在那儿响,只能用给系统断电才能结束,想问问各位大侠退出如何停止正在运行的程序? 解决方案 可以看下停止相关的命令和操作.

ubuntu-我想在linux运行c#程序,请问我需要做什么?

问题描述 我想在linux运行c#程序,请问我需要做什么? 我现在linux ubuntu14.10运行c# 程序,那么我需要做什么?除了使用mono. 解决方案 微软所谓支持linux,就是指微软招安了mono.wpf还没有移植到linux的原因是,它依赖DirectX,而DX在Linux下并没有对应的存在. 解决方案二: mono mono mono没了--LZ忽略此次回复-- 解决方案三: mono是唯一的,支持linux的,成熟的运行库.除了mono恐怕你只有用虚拟机了. 解决方案四: