前言
请先参考:
CentOS7添加自定义系统服务systemctl java jar
ubuntu下面配置pgadmin4为系统服务且开机自动启动
制作服务
首先,新建一个目录存放服务。
我新建的目录是:
sudo mkdir -p /usr/local/services/xxl-conf-admin
然后将生成的bootScript以及lib文件夹存放到目录之下,譬如:
需要确保能够正常运行。
、
添加程序的日志记录文件以及pid文件。
例如:
sudo touch output.log
sudo touch progress.pid
好了,添加一份可以执行的脚本:
sudo touch run.sh
sudo chmod +x run.sh
然后编写以下程序:
#!/bin/sh
# chkconfig: 123456 90 10
workdir=/usr/local/services/xxl-conf-admin
##注意,nohup执行sh之后,全局环境变量都默认不添加的,请手动source添加环境变量
source /etc/profile
daemon_start(){
cd $workdir
nohup ./bootScripts/xxl-conf-admin > output.log &
echo $! > progress.pid
echo "Server started."
}
daemon_stop(){
cd $workdir
pid==$(progress.pid)
echo "try stop service"
echo $pid
kill $pid
sleep 2
echo "Server Killed."
}
case "$1" in
start)
daemon_start
;;
stop)
daemon_stop
;;
restart)
daemon_stop
daemon_start
;;
*)
echo "Usage: Services {start|stop|restart}"
exit 1
esac
exit 0
保存:
然后在linux的service目录下添加服务文件,
sudo touch /lib/systemd//system/xxl-conf-admin.service
xxl-conf-admin.service的内容如下:
[Unit]
Description=xxl-conf-admin的本地网站服务,注意,作为配置中心必须属于最早启动的一批服务
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/services/xxl-conf-admin/run.sh start
ExecStop=/usr/local/services/xxl-conf-admin/run.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载service文件
systemctl daemon-reload
启动服务:
systemctl start xxl-conf-admin
然后,得到[
报错了,这种情况,
参阅:
nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
当然,注意,原本是sh脚本,直接用source会提示source not found的,原因这里有写:
执行 shell 报错 source:not found。一行注释解决
所以,原本的脚本改写为:
run.sh内容改为:
#!/bin/bash
# chkconfig: 123456 90 10
workdir=/usr/local/services/xxl-conf-admin
##注意,nohup执行sh之后,全局环境变量都默认不添加的,请手动source添加环境变量
source /etc/profile
daemon_start(){
cd $workdir
nohup ./bootScripts/xxl-conf-admin > output.log &
echo $! > progress.pid
echo "Server started."
}
daemon_stop(){
cd $workdir
pid==$(progress.pid)
echo "try stop service"
echo $pid
kill $pid
sleep 2
echo "Server Killed."
}
case "$1" in
start)
daemon_start
;;
stop)
daemon_stop
;;
restart)
daemon_stop
daemon_start
;;
*)
echo "Usage: Services {start|stop|restart}"
exit 1
esac
exit 0
然后执行,可以看到:
好了,服务已经可以正常运行了。
接着就设置开机自启动:
systemctl enable xxl-conf-admin
结论
这是本篇第三部,用于正式部署到服务器上面,并且设置开机自启动。