如果Linux(Unix)系统重启,用户希望在操作系统启动时能够自动启动某些应用程序的进程。为了达到这种功能就必须为这些应用程序编写服务脚本,并注册成操作系统服务。以下内容将详细讲解把DM服务脚本注册成操作系统服务的方法。
1 注册服务
1.1 使用脚本注册服务
DM提供了将DM服务脚本注册成操作系统服务的脚本,同时也提供了卸载操作系统服务的脚本。注册和卸载脚本文件所在目录为安装目录的“/scripts/root”子目录下。
注册服务脚本为dm_service_installer.sh,用户可以使用注册服务脚本将服务脚本注册成为操作系统服务,命令参数如下所示:
表1 注册服务参数
标志 | 参数 | 说明 |
-t | 服务类型 | 注册服务类型,支持一下服务类型:dmap、 dmamon、dmserver 、dmwatcher、dmmonitor 、dmasmsvr 、dmcss 、dmcssm、dmdrs、dmdras、dmdcs、dmdss |
-p | 服务名后缀 | 指定服务名后缀,生成的操作系统服务名为“服务脚本模板名称+服务名后缀”。此参数只针对5~14服务脚本生效。 |
-dm_ini | INI文件路径 | 指定服务所需要的dm.ini文件路径。 |
-watcher_ini | INI文件路径 | 指定服务所需要的dmwatcher.ini文件路径。 |
-monitor_ini | INI文件路径 | 指定服务所需要的dmmonitor.ini文件路径。 |
-dcr_ini | INI文件路径 | 指定服务所需要的dmdcr.ini文件路径。 |
-cssm_ini | INI文件路径 | 指定服务所需要的dmcssm.ini文件路径。 |
-dss_ini | INI文件路径 | 指定服务所需要的dss.ini文件路径。 |
-drs_ini | INI文件路径 | 指定服务所需要的drs.ini文件路径。 |
-dras_ini | INI文件路径 | 指定服务所需要的dras.ini文件路径。 |
-dcs_ini | INI文件路径 | 指定服务所需要的dcs.ini文件路径。 |
-dfs_ini | INI文件路径 | 指定服务所需要的dfs.ini文件路径。 |
-server | 连接信息 | 指定服务器连接信息(IP:PORT) |
-m | open或mount | 指定数据库的启动模式open或mount。此参数只针对dmserver服务类型生效,可选。 |
-s | 服务脚本文件路径 | 如果设置此参数则忽略除-y外的其他所有参数。指定服务脚本全路径 |
-y | 服务名 | 设置依赖服务,此选项只针对systemd服务环境下的dmserver和dmasmsvr服务生效 |
-h | 帮助 |
使用方法:
操作之前,需要使用root系统用户登录或切换至root系统用户。
以下示例为创建数据库实例的系统服务,数据库dm.ini所在路径为/opt/dmdbms/data/DAMENG/dm.ini,系统服务后缀为DMSERVER。
1. 通过指定服务类型注册服务
命令如下:
./dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p DMSERVER
注册脚本将注册达梦数据库实例服务DmServiceDMSERVER。
通过服务脚本文件注册服务
如果已存在修改完成的服务脚本模板。用户可通过此服务脚本文件注册操作系统随机启动服务。命令如下:
./dm_service_installer.sh -s /opt/dmdbms/bin/DmServiceDMSERVER
1.2 手动注册服务
在Linux(Unix)系统中,init.d和systemd是最常见的系统服务环境。下面以dmserver(DmServcie)服务为例,将讲解在不同系统服务环境中手动注册服务的方法。
1.1 init.d环境
以下步骤将以Red Hat Enterprise Linux 6 for x86-64系统为例,由于不同操作系统系统命令不尽相同,具体步骤及操作请以本机系统为准,具体细节可向系统管理员咨询。
拷贝服务模板文件(DmService)到系统服务目录(/etc/rc.d/init.d),并将新文件命名为DmServiceDMSERVER。
cp /opt/dmdbms/bin/service_template/DmService
/etc/rc.d/init.d/DmServiceDMSERVER
chmod 755 /etc/rc.d/init.d/DmServiceDMSERVER
修改服务脚本(/etc/rc.d/init.d/DmServiceDMSERVER)配置。
##修改DmServiceDMSERVER
INI_PATH=INI路径
其他参数请参考1.2服务脚本参数修改相关内容,并根据自身需求修改服务脚本配置。
创建启动服务的连接
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc0.d/K02DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc1.d/K02DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc2.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc3.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc4.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc5.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc6.d/K02DmServiceDMSERVER
启动停止服务。
##停止服务
service DmServiceDMSERVER stop
##启动服务
service DmServiceDMSERVER start
1.2 systemd环境
以下步骤将以Red Hat Enterprise Linux 7 for x86-64系统为例,由于不同操作系统系统命令不尽相同,具体步骤及操作请以本机系统为准,具体细节可向系统管理员咨询。
1.拷贝服务模板文件(DmService)到目录(/opt/dmdbms/bin),并将新文件命名为DmServiceDMSERVER。
cp /opt/dmdbms/bin/service_template/DmService
/opt/dmdbms/bin/DmServiceDMSERVER
chmod 755 /opt/dmdbms/bin/DmServiceDMSERVER
修改服务脚本(/opt/dmdbms/bin/DmServiceDMSERVER)配置。
##修改DmServiceDMSERVER
INI_PATH=INI路径
其他参数请参考1.2服务脚本参数修改相关内容,并根据自身需求修改服务脚本配置。
创建系统服务配置文件(/usr/lib/systemd/system/DmServiceDMSERVER.service)。文件内容,如下所示:
[Unit]
Description=DmServiceDMSERVER
After=network.target remote-fs.target
[Service]
Type=forking
PIDFile=/opt/dmdbms/bin/pids/DmServiceDMSERVER.pid
ExecStart=/opt/dmdbms/bin/DmServiceDMSERVER start
ExecStop=/opt/dmdbms/bin/DmServiceDMSERVER stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
在使用服务前,需要启用服务。相关命令如下所示:
##启用服务
systemctl enable DmServiceDMSERVER
##停止服务
systemctl stop DmServiceDMSERVER
##启动服务
systemctl start DmServiceDMSERVER
2 卸载服务
服务卸载脚本文件为dm_service_uninstaller.sh。用户可以使用服务卸载脚本删除已经注册成操作系统服务的DM服务脚本,参数如下表:
表2 删除服务参数
标志 | 参数 | 说明 |
-n | 服务名 | 指定服务名,删除指定的操作系统随机启动服务 |
-h | 帮助 |
使用方法:
操作之前,需要使用root系统用户登录或切换至root系统用户。
删除指定的操作系统服务。假设存在DM的操作系统随机启动服务DmServiceDMSERVER,命令如下:
./dm_service_uninstaller.sh -n DmServiceDMSERVER