-
你要通过 start.sh restart.sh stop.sh 三个脚本来启动,重启关闭你的应用,
-
这几个脚本要求是可以运行完成的, 即没有阻塞的状态 比如你可以使用 liunx 的
nohup
命令来时你的应用在后台运行 ,从而不会柱塞你的启动脚本 -
你的这几个脚本要保证无论在哪个位置启动, 都可以成功, 不需要强制 cd 到你的脚本目录,或者你的应用home上面,可以使用如下变量来实现,获取你应用的位置
BIN_FOLDER = $(cd "$(dirname "$0")" ; pwd) 解析:
1、取当前运行脚本的所在路径: $0
2、取当前脚本所在路径的父目录: dirname "$0"
3、取返回的父目录的值: $(dirname "$0")
4、cd到返回的父目录: cd "$(dirname "$0")"
5、输出地址: cd "$(dirname "$0")",pwd
6、取输出的地址,并赋值给BIN_FOLDER: BIN_FOLDER = $(cd "$(dirname "$0")" ;pwd)
- 首先要写一个 xxx.service 的文件放在
/usr/lib/systemd/system
目录下
[Unit]
Description=xxx server
After=network.target
[Service]
Type=forking
ExecStart=/data/svc/xxx/opbin/start.sh
ExecReload=/data/svc/xxx/opbin/restart.sh
ExecStop=/data/svc/xxx/opbin/stop.sh
Restart=on-failure
RestartSec=3
[Install]
- 写好这个脚本后, 你就可以使用
systemctl start xxx 来启动服务
systemctl stop xxx 来停止服务
systemctl restart xxx 来重启服务
- 执行
systemctl enable xxx.service
即可实现开机自启动