linux下jar包的生存与开机自动启动
来源:互联网 发布:js截图保存为图片 编辑:程序博客网 时间:2024/05/16 09:16
前言
作为一名Android开发,有的时候也是要做做其他工作的,前段时间写了一个很简单的java消息转发程序,因为和三方厂商合作,对方只提供了java的sdk,然而我们这边都是清一色的C#后台开发人员,所以我就起到桥梁的作用了,总结一下简单的工作,以后回望或许有所感想。
程序方面
怎么提供消息给C#程序员呢?那当然是RabbitMQ,这个相对简单,也贴一下,万一以后会用到MQ呢?
// 设置配置信息 if(factory == null){ factory = new ConnectionFactory(); factory.setHost(Config.host); factory.setPort(Config.port); factory.setVirtualHost(Config.virtualHost); factory.setUsername(Config.username); factory.setPassword(Config.password); } // 设置链接信息 if(connection == null || (connection != null && !connection.isOpen())){ connection = factory.newConnection(); channel = connection.createChannel(); channel.exchangeDeclare(Config.EXCHANGE_NAME, "direct", durable); channel.confirmSelect(); } // 设置频道信息 if(channel == null || (channel != null && !channel.isOpen())){ channel = connection.createChannel(); channel.exchangeDeclare(Config.EXCHANGE_NAME, "direct", durable); channel.confirmSelect(); }// 发送消息 channel.basicPublish(Config.EXCHANGE_NAME, Config.ezviz_key, MessageProperties.PERSISTENT_BASIC, msg.getBytes());
当然代码里做了适当封装,但MQ使用就是这样了,当然这只是简单的MQ使用,根据场景使用可能会使用别的类型,比如一个生产者多个消费者什么的。这方面推荐一个地址:https://www.cnblogs.com/luxiaoxun/p/3918054.html
我觉得他讲得很适合初学者。
开发环境运行
因为这个消息转发就是接入SDK,然后对消息进行处理,处理完毕之后按着C#程序员给我的格式,对处理完毕的消息进行类型转换并json一下,然后发送到MQ队列,很简单,所以就打算用jar包的形式做后台跑在linux服务器上,那么我们很简单的方法可以实现这个问题:
nohup /usr/java/jdk1.8.0_112/bin/java -jar /root/java/MessageForwarding.jar >/root/java/message.log &
通过nohup指令使程序不依赖于控制台,这样运行完毕之后可以ctrl+c,程序还继续运行,上面的日志讲jar包里面的打印语句都输出到了message.log里面,这样在程序里面的日志都能够查看,当然看看需不需要写一下定期清理,视情况而定了。这样满足了基本的功能需求,但是linux重启自后怎么办?其实这一块说起来简单,过程可能有点弯。
方法一:
通过java wrapper做这一块工作,详细的过程可以搜一下java wrapper,这方面的教程很多,这里贴一个官方网站吧:
https://wrapper.tanukisoftware.com
方法二:
通过我了解的linux的开机启动文件,我想通过shell脚本完成这个事,我先把jar包放到/root/java/MessageForwarding.jar这里,然后编辑一个简单的shell脚本(MessageForwarding.sh):
# !/bin/bash# program# test java openexport JAVA_HOME=/usr/java/jdk1.8.0_112export JRE=/usr/java/jdk1.8.0_112/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE/lib:.export PATH=$PATH:$JAVA_HOME/bin/:$JRE/binnohup java -jar /root/java/MessageForwarding.jar >/root/java/message.log &
当然很简单,这就是执行jar包,运行一下,执行这个sh文件,没有问题:可以通过:
ps -ef|grep java查询一下进程。
开机启动就需要操作/etc/rc.local文件,有可能linux系统不同文件有些区别,我之前看别的博客就没成功,只要在这里执行这个文件就OK了。
保存退出,开机重启,查询一下进程,程序已经在进程中了,而且消息也在MQ队列了。
最后
这个过程很简单,记录一下,不然以后连简单的东西都忘记了,可能有错误的地方,也或许这样做不太合适,希望批评指正:redzkh@gmail.com
- linux下jar包的生存与开机自动启动
- 在linux下开机自动运行jar包
- Linux下编写 jar包自动启动脚本
- linux下开机自动启动
- Linux(Ubuntu)下设置开机启动shell脚本执行Java程序jar包
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- linux下weblogic开机自动启动的解决方法
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- 在linux下设置开机自动启动程序的方法
- 详解linux各个目录的作用
- 2017年10月历史文章汇总
- RAC中常见用法
- 高斯消元学习笔记
- js移动端长按事件
- linux下jar包的生存与开机自动启动
- 一种动态背景下的运动小目标检测方法
- 阿里智能对话交互技术实践与创新
- 我的“技术架构”之旅
- 用jQuery实现简单的tab切换
- 项目部署中遇到的问题
- Android 6.0后蓝牙的开发,搜索,配对,连接发送数据等(一)
- Spring+SpringMVC+Mybatis+Shiro+Msql
- MySQL5.6免安装版环境配置图文教程