linux设置rocketmq自启动

linux 查看服务是否自启动用命令

chkconfig  –list

因为rocketmq不是linux内置的服务,所以需要建立脚本,让linux识别为自身服务。

建立脚本的位置就在/etc/init.d/ 目录下

先在任意目录创建rocketmq.sh文件

文件内容为:

!/usr/bin/env bash
script starts and stops the rocketmq daemon
#
chkconfig: - 85 15
export JAVA_HOME=/home/install/jdk
ROCKETMQ_HOME=/home/install/rocketmq
ROCKETMQ_BIN=${ROCKETMQ_HOME}/bin
ADDR=hostname -i:9876
LOG_DIR=${ROCKETMQ_HOME}/logs
NAMESERVER_LOG=${LOG_DIR}/namesrv.log
BROKER_LOG=${LOG_DIR}/broker.log
start() {
if [ ! -d ${LOG_DIR} ];then
mkdir ${LOG_DIR}
fi
cd ${ROCKETMQ_HOME}
nohup sh bin/mqnamesrv > ${NAMESERVER_LOG} 2>&1 &
echo -n "The Name Server boot success…"
nohup sh bin/mqbroker -n ${ADDR} > ${BROKER_LOG} 2>&1 &
echo -n "The broker[%s, ${ADDR}] boot success…"
}
stop() {
cd ${ROCKETMQ_HOME}
sh bin/mqshutdown broker
sleep 1
sh bin/mqshutdown namesrv
}
restart() {
stop
sleep 5
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac

JAVA_HOME和ROCKETMQ_HOME根据你的安装目录设置,jdk设置参考文章 jdk设置

设置文件为可执行

chmod a+x rocketmq.sh

拷贝到 /etc/init.d/目录下

sudo mv rocketmq.sh /etc/init.d/rocketmq

添加到服务

chkconfig –add rocketmq

把服务设置为开机自启动


chkconfig rocketmq on

在看看服务是否已经设置好

chkconfig  –list

服务启动 service rocketmq start

服务关闭 service rocketmq stop

服务重启 service rocketmq restart

搭建的oracle监听又不行了

才发现netca里listener的hostname是bogon, ping bogon发现不是127.0.0.1,于是把bogon指定ip为127.0.0.1

  1).修改/etc/sysconfig/network里面的主机名字。
          [root@bogon ~]#  vi /etc/sysconfig/network

               NETWORKING=yes
             HOSTNAME=bogon                // 在这修改 hostname 为 bogon
     2).修改/etc/hosts里面的名字
          [root@bogon ~]#  vi /etc/hosts
             127.0.0.1               bogon
     3).不需要重启主机,最后在终端下执行:
        [root@bogon ~]# hostname  bogon      // bogon 为修改的hostname

    然后重启服务器,启动数据库,启动监听,不行,然后,再重启数据库,发现可以了,神奇的oracle。

附一个oracle监听原理图

客户端根据tnsname.ora找服务端的监听listener.ora,

附配置文件,服务器端

奇怪host有变成localhost了。

linux下安装oracle

参考了https://www.cnblogs.com/mmzs/p/9033112.html

我的虚拟机是centos,里面安装了oracle, 宿主本机电脑,通过hyper-v的内部网络(nat)连接虚拟机。

虚拟机配置:

tnsnames.ora

ORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.3)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl11g.us.oracle.com)
)
)

listener.ora

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)

ADR_BASE_LISTENER = /data/oracle

服务端运行lsnrctl status,查看监听是否配置正确,可以反复使用lsnrctl stop,lsnrctl top来启动停止监听服务。知道出现


标识监听成功,如果不能够,可以用netca命令,重新配置监听。

tnsping tnsnames.ora中的服务名称,看网络是否正常

例如tnsping ORCL11G

标识网络没有问题。

客户端:本机电脑如何连接呢?

运行net manager,按照服务端的 tnsnames.ora ,来创建服务命名


记得把scott/tiger测试用户解锁,有利于测试是否连通。

客户端的tnsnames.ora

客户端连接截图

也可以通过这种方式来连接

hyper-v内部网络设置

内部网络,就是nat,其他还有桥接,专用网络。

首先vi /etc/sysconfig/network-scripts/ifcfg-eth0 ,

修改下面几项

BOOTPROTO=static
IPADDR=192.168.137.3
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
DNS1=192.168.137.1
ONBOOT=yes

然后重启网络

service network restart