【配置中心】xxl-conf配置3 - xxl-conf-admin在linux下面的自启动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cdnight/article/details/86483996

前言

请先参考:
CentOS7添加自定义系统服务systemctl java jar

ubuntu下面配置pgadmin4为系统服务且开机自动启动

nohup和&后台运行,进程查看及终止

制作服务

首先,新建一个目录存放服务。
我新建的目录是:

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

结论

这是本篇第三部,用于正式部署到服务器上面,并且设置开机自启动。

猜你喜欢

转载自blog.csdn.net/cdnight/article/details/86483996