35 lines
771 B
Bash
35 lines
771 B
Bash
#!/bin/sh
|
||
set -e
|
||
|
||
# 启动后端服务(带参数后台运行)
|
||
echo "启动后端服务,参数: $@"
|
||
ushare "$@" &
|
||
BACKEND_PID=$!
|
||
|
||
# 定义优雅关闭函数
|
||
graceful_shutdown() {
|
||
echo "接收到终止信号,开始优雅关闭..."
|
||
|
||
# 先关闭 Nginx
|
||
echo "关闭 Nginx..."
|
||
nginx -s quit 2>/dev/null || kill -TERM $NGINX_PID 2>/dev/null
|
||
|
||
# 关闭后端服务
|
||
echo "关闭后端服务 PID $BACKEND_PID..."
|
||
kill -TERM $BACKEND_PID 2>/dev/null
|
||
|
||
# 等待进程终止
|
||
wait $BACKEND_PID $NGINX_PID 2>/dev/null
|
||
exit 0
|
||
}
|
||
|
||
# 捕获系统信号
|
||
trap 'graceful_shutdown' SIGTERM SIGINT
|
||
|
||
# 启动 Nginx(前台运行)
|
||
echo "启动 Nginx..."
|
||
nginx -g "daemon off;" &
|
||
NGINX_PID=$!
|
||
|
||
# 等待所有后台进程
|
||
wait $BACKEND_PID $NGINX_PID |