一、问题背景
安装达梦数据库后,使用官方帮助文档操作集成到系统服务失败,于是考虑写一个启动脚本,将其集成到系统启动单元中。
二、编写shell启动脚本
#!/bin/bash
# execute dmserver command and output logs to dm.log
/dm8/bin/dmserver /dm/data/DAMENG/dm.ini &> dm.log &
# daemonize the process
daemonize(){
echo $$ > /var/run/dmserver.pid
echo "达梦数据库启动成功!"
exit 0
}
daemonize
三、编写系统服务启动单元
vim /etc/systemd/system/DMSQL.service
# DMSQL.service
[Unit]
Description=DM8SQL_Service
After=network.target
[Service]
Type=forking
ExecStart=/dm8/startDM8SQL.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
备注:因为启动脚本startDM8SQL.sh实际是在后台运行的程序,不是简单命令,所以Type应设置为forking。
四、启动效果
systemctl start DMSQL
systemctl status DMSQL
systemctl enable DMSQL
Created symlink from /etc/systemd/system/multi-user.target.wants/DMSQL.service to /etc/systemd/system/DMSQL.service.
Loaded: loaded (/etc/systemd/system/DMSQL.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2023-08-23 09:48:45 CST; 1min 38s ago
Main PID: 31742 (dmserver)
CGroup: /system.slice/DMSQL.service
Aug 23 09:48:45 izoa3jxy7fndltz systemd[1]: Starting DM8SQL_Service...
Aug 23 09:48:45 izoa3jxy7fndltz startDM8SQL.sh[31741]: 达梦数据库启动成功!