当前位置: 首页 > news >正文

远程监控linux的jboss,如何将JBoss做成Redhat Linux的系统服务

怎么做才能在启动Linux系统的时候JBoss也随之启动呢?

使用Linux系统的V脚本。尽管, 在分类之间有一些不同,通常它类似这样:

/etc/rc.d/init.d/ - 包含开始 和 停止 脚本 (其他分类: /etc/init.d/)

/etc/rc.(x)/ - 包含用S或者K前缀的开始和停止脚本链接(启动或者杀死)

对于各种不同层次的系统用户有各种不同的运行级别。

rc1.d – 单用户模式

rc2.d – 启用网络的单用户模式

rc3.d – 多用户模式-用文本模式启动

rc4.d – 未定义

rc5.d – 多用户模式 – 用X 窗口启动

rc6.d – 关闭

现在我们开始工作:

创建jboss用户和安装jboss就不再这里多说了。

创建一个脚本叫 /etc/rc.d/init.d/jboss

创建一个链接叫 /etc/rc3.d/S84jboss

可选的方式 /etc/rc5.d/S84jboss 和/etc/rc4.d/S84jboss

创建一个链接叫 /etc/rc6.d/K15jboss

在/etc/rc1.d, /etc/rc2.d, /etc/rc0.d 上创建K15链接

需要注意的是:确保$JBOSS_HOME 目录能被”jboss”用户读写。如果有问题,可以点击查看 JBoss应用服务器推荐UNIX文件系统许可。

创建脚本jboss:

JBoss 4.0.1+版本,在bin 目录配备 prebaked init 脚本, jboss_init_redhat.sh 和 jboss_init_suse.sh. 你可以复制这些脚本中的一个到 /etc/rc.d/init.d/jboss, 由于我用的是redhat,所以复制jboss_init_redhat.sh,并修改它为可执行。

[root@vm2 ~]# cp $JBOSS_HOME/bin/jboss_init_redhat.sh /etc/rc.d/init.d/jboss

[root@vm2 ~]# chmod 755 /etc/rc.d/init.d/jboss

其中,$JBOSS_HOME在你操作的时候不能这样写,它代表的是你的jboss安装的目录,到时你需要替换掉它。

然后使用vi编辑器编辑它:

#!/bin/sh

#

# $Id: jboss_init_redhat.sh 46554 2006-07-28 10:29:13Z dimitris $

#

# JBoss Control Script

#

# To use this script run it as root - it will switch to the specified user

#

# Here is a little (and extremely primitive) startup/shutdown script

# for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,

# it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.

# All this can be changed in the script itself.

#

# Either modify this script for your requirements or just ensure that

# the following variables are set correctly before calling the script.

#换成你本机jboss的安装目录

JBOSS_HOME=${JBOSS_HOME:-"/home/jboss/jboss-4.0.5.GA"}

#换成你新建的jboss用户

JBOSS_USER=${JBOSS_USER:-"jboss"}

#换成本地java路径

JAVAPTH=${JAVAPTH:-"/home/jboss/jdk1.5.0_14/bin"}

#启动的配置参数,有3个值: 'minimal', 'default', 'all',all是集群模式的配置

JBOSS_CONF=${JBOSS_CONF:-"default"}

#这里是绑定所有的网卡,如果绑一个,就写你的IP地址。只在jboss4.2.0+的版本对外使用时才使用。

#JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}

#默认的关闭脚本,好像不太好用,我就没用

#JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}

#jboss4.2.0+版本对外服务绑定Ip的时候的关闭脚本

#JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.sh -S -s $JBOSS_HOST"}

#jboss关闭脚本

JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.sh -S"}

#这是jboss4.2.0+版本对外服务时的启动

#JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF -b $JBOSS_HOST"}

#jboss启动

JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF"}

if [ "$JBOSS_USER" = "RUNASIS" ]; then

SUBIT=""

else

SUBIT="su - $JBOSS_USER -c "

fi

if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then

# ensure the file exists

touch $JBOSS_CONSOLE

if [ ! -z "$SUBIT" ]; then

chown $JBOSS_USER $JBOSS_CONSOLE

fi

fi

if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then

echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE"

#自启动日志

# echo "WARNING: ignoring it and using /dev/null"

echo "WARNING: ignoring it and using $JBOSS_HOME/jbossAutoStart.log"

#自启动日志

#JBOSS_CONSOLE="/dev/null"

JBOSS_CONSOLE=${JBOSS_CONSOLE:-"$JBOSS_HOME/jbossAutoStart.log"}

fi

#自启动日志

#JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}

JBOSS_CONSOLE=${JBOSS_CONSOLE:-"$JBOSS_HOME/jbossAutoStart.log"}

JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"

#这个是默认的,跟上面的一样,不太好用

#JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown -S"}

#我自己用的关闭方式

JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"cd $JBOSS_HOME/bin; $JBOSSCP"}

if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then

export PATH=$PATH:$JAVAPTH

fi

if [ ! -d "$JBOSS_HOME" ]; then

echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME

exit 1

fi

#这是默认的控制台打印启动脚本命令,很不爽,就关了

#echo JBOSS_CMD_START = $JBOSS_CMD_START

case "$1" in

start)

echo "JBoss start.........."

cd $JBOSS_HOME/bin

if [ -z "$SUBIT" ]; then

eval $JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &

else

$SUBIT "$JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &"

fi

;;

stop)

echo "JBoss stop........."

if [ -z "$SUBIT" ]; then

$JBOSS_CMD_STOP

else

$SUBIT "$JBOSS_CMD_STOP"

fi

;;

restart)

echo "JBoss restart........"

$0 stop

sleep 60

$0 start

;;

*)

echo "usage: $0 (start|stop|restart|help)"

esac

这些脚本能传送日志到 /dev/null, 但是我们还是想得到输入日志,以便我们来处理运行中的错误。所以我们要创建一个真实的文件:

[root@vm2 ~]# mkdir $JBOSS_HOME/jbossAutoStart.log

[root@vm2 ~]# chown -R jboss.jboss $JBOSS_HOME/jbossAutoStart.log

创建链接:

[root@vm2 ~]# ln -s /etc/rc.d/init.d/jboss /etc/rc3.d/S84jboss

[root@vm2 ~]# ln -s /etc/rc.d/init.d/jboss /etc/rc4.d/S84jboss

[root@vm2 ~]# ln -s /etc/rc.d/init.d/jboss /etc/rc5.d/S84jboss

[root@vm2 ~]# ln -s /etc/rc.d/init.d/jboss /etc/rc0.d/K15jboss

[root@vm2 ~]# ln -s /etc/rc.d/init.d/jboss /etc/rc1.d/K15jboss

[root@vm2 ~]# ln -s /etc/rc.d/init.d/jboss /etc/rc2.d/K15jboss

[root@vm2 ~]# ln -s /etc/rc.d/init.d/jboss /etc/rc6.d/K15jboss

当你在Linux中将执行"service jboss start"命令是,就对应"S" 链接 和 "service jboss stop"命令是 对于 K 链接。

到此,完成。

分享至:

90ed4b13fe016cebd9fe3df2ae3a899b.gif

相关文章:

  • 火狐浏览器在linux下编译,linux下火狐浏览器插件开发.doc
  • linux vi编辑撤销,vi撤销命令(u和U),撤销上一次的操作
  • flask部署linux视频,基于python的web架构部署注意事项
  • Linux下载WordPress出现错误,解决wordpress发生意外错误,可能WordPress.org或服务器配置文件存在问题...
  • linux下github上传文件,linux下将本地文件上传到github中?
  • 具有二进制时钟的Linux,Unix Linux
  • c语言while语句里if,C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)...
  • 0809连接单片机c语言,adc0809引脚图及功能详解,adc0809与51单片机连接电路分析
  • c语言 星期,计算任何一天是星期几的C语言源代码.
  • android版本sdk api对应,Android API Level与sdk版本对照表
  • android js变量定义数组,js 声明数组和向数组中添加对象变量的简单实例
  • Android旋转视频工具类,Android图片旋转工具类
  • android zip4j说明文件,Android Zip4J 使用笔记
  • android视频贴纸第三方,短视频中接入视频贴纸SDK是用户真正想要的吗
  • Nexus9安装android9,Nexus 9支持扩展卡吗?Nexus 9支持多大的储存卡?
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 10个最佳ES6特性 ES7与ES8的特性
  • C++类的相互关联
  • docker-consul
  • Javascript弹出层-初探
  • java多线程
  • Java教程_软件开发基础
  • Laravel 实践之路: 数据库迁移与数据填充
  • Node 版本管理
  • node入门
  • REST架构的思考
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 百度小程序遇到的问题
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • ​插件化DPI在商用WIFI中的价值
  • ​用户画像从0到100的构建思路
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (ibm)Java 语言的 XPath API
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (SpringBoot)第二章:Spring创建和使用
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)PySpark3:SparkSQL编程
  • (推荐)叮当——中文语音对话机器人
  • (正则)提取页面里的img标签
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转载)虚函数剖析
  • .bashrc在哪里,alias妙用
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET的数据绑定
  • .net与java建立WebService再互相调用
  • .sys文件乱码_python vscode输出乱码
  • @Conditional注解详解