Delete start-services.sh
Browse files- start-services.sh +0 -134
start-services.sh
DELETED
@@ -1,134 +0,0 @@
|
|
1 |
-
#!/bin/bash
|
2 |
-
|
3 |
-
# Hugging Face Spaces WordPress 服务启动脚本
|
4 |
-
# 管理 WordPress、Python 应用和清理服务
|
5 |
-
|
6 |
-
set -e
|
7 |
-
|
8 |
-
echo "=== 启动 WordPress for Hugging Face Spaces ==="
|
9 |
-
|
10 |
-
# 创建必要的目录
|
11 |
-
echo "创建必要的目录..."
|
12 |
-
mkdir -p /var/www/html/wp-content/database
|
13 |
-
mkdir -p /var/www/html/wp-content/uploads
|
14 |
-
mkdir -p /var/www/html/wp-content/cache
|
15 |
-
mkdir -p /var/log/wordpress
|
16 |
-
mkdir -p /var/log/apache2
|
17 |
-
|
18 |
-
# 设置权限
|
19 |
-
echo "设置文件权限..."
|
20 |
-
chown -R www-data:www-data /var/www/html
|
21 |
-
chmod -R 755 /var/www/html
|
22 |
-
chown -R www-data:www-data /var/www/html/wp-content/database
|
23 |
-
chmod -R 755 /var/www/html/wp-content/database
|
24 |
-
|
25 |
-
# 检查并安装 SQLite 插件
|
26 |
-
echo "检查 SQLite 插件..."
|
27 |
-
if [ ! -d "/var/www/html/wp-content/plugins/sqlite-database-integration" ]; then
|
28 |
-
echo "安装 SQLite 数据库集成插件..."
|
29 |
-
cd /tmp
|
30 |
-
wget -q https://downloads.wordpress.org/plugin/sqlite-database-integration.2.1.5.zip
|
31 |
-
unzip -q sqlite-database-integration.2.1.5.zip
|
32 |
-
mv sqlite-database-integration /var/www/html/wp-content/plugins/
|
33 |
-
chown -R www-data:www-data /var/www/html/wp-content/plugins/sqlite-database-integration
|
34 |
-
rm sqlite-database-integration.2.1.5.zip
|
35 |
-
echo "SQLite 插件安装完成"
|
36 |
-
else
|
37 |
-
echo "SQLite 插件已存在"
|
38 |
-
fi
|
39 |
-
|
40 |
-
# 复制 wp-config.php 如果不存在
|
41 |
-
if [ ! -f "/var/www/html/wp-config.php" ]; then
|
42 |
-
echo "复制 wp-config.php..."
|
43 |
-
cp /usr/src/wordpress/wp-config.php /var/www/html/
|
44 |
-
chown www-data:www-data /var/www/html/wp-config.php
|
45 |
-
fi
|
46 |
-
|
47 |
-
# 启动 cron 服务
|
48 |
-
echo "启动 cron 服务..."
|
49 |
-
service cron start
|
50 |
-
|
51 |
-
# 启动 Apache 在后台
|
52 |
-
echo "启动 Apache 服务..."
|
53 |
-
apache2ctl start
|
54 |
-
|
55 |
-
# 等待 Apache 启动
|
56 |
-
sleep 3
|
57 |
-
|
58 |
-
# 检查 Apache 状态
|
59 |
-
if pgrep apache2 > /dev/null; then
|
60 |
-
echo "Apache 启动成功"
|
61 |
-
else
|
62 |
-
echo "Apache 启动失败"
|
63 |
-
exit 1
|
64 |
-
fi
|
65 |
-
|
66 |
-
# 启动 Python 应用
|
67 |
-
echo "启动 Python 应用..."
|
68 |
-
cd /app
|
69 |
-
export FLASK_ENV=production
|
70 |
-
export FLASK_APP=app.py
|
71 |
-
|
72 |
-
# 在后台启动 Python 应用
|
73 |
-
python3 app.py &
|
74 |
-
PYTHON_PID=$!
|
75 |
-
|
76 |
-
echo "Python 应用启动,PID: $PYTHON_PID"
|
77 |
-
|
78 |
-
# 等待服务启动
|
79 |
-
sleep 5
|
80 |
-
|
81 |
-
# 健康检查
|
82 |
-
echo "执行健康检查..."
|
83 |
-
for i in {1..10}; do
|
84 |
-
if curl -f -s http://localhost:7860/health > /dev/null; then
|
85 |
-
echo "健康检查通过"
|
86 |
-
break
|
87 |
-
else
|
88 |
-
echo "等待服务启动... ($i/10)"
|
89 |
-
sleep 2
|
90 |
-
fi
|
91 |
-
|
92 |
-
if [ $i -eq 10 ]; then
|
93 |
-
echo "健康检查失败,服务可能未正常启动"
|
94 |
-
fi
|
95 |
-
done
|
96 |
-
|
97 |
-
# 显示服务状态
|
98 |
-
echo "=== 服务状态 ==="
|
99 |
-
echo "Apache: $(pgrep apache2 > /dev/null && echo '运行中' || echo '已停止')"
|
100 |
-
echo "Python App: $(kill -0 $PYTHON_PID 2>/dev/null && echo '运行中' || echo '已停止')"
|
101 |
-
echo "Cron: $(pgrep cron > /dev/null && echo '运行中' || echo '已停止')"
|
102 |
-
|
103 |
-
# 显示访问信息
|
104 |
-
echo "=== 访问信息 ==="
|
105 |
-
echo "WordPress: http://localhost:7860/wordpress"
|
106 |
-
echo "应用首页: http://localhost:7860/"
|
107 |
-
echo "健康检查: http://localhost:7860/health"
|
108 |
-
echo "清理状态: http://localhost:7860/api/cleanup/status"
|
109 |
-
|
110 |
-
echo "=== 启动完成 ==="
|
111 |
-
|
112 |
-
# 保持容器运行
|
113 |
-
echo "保持服务运行..."
|
114 |
-
while true; do
|
115 |
-
# 检查关键服务是否还在运行
|
116 |
-
if ! pgrep apache2 > /dev/null; then
|
117 |
-
echo "Apache 服务已停止,重新启动..."
|
118 |
-
apache2ctl start
|
119 |
-
fi
|
120 |
-
|
121 |
-
if ! kill -0 $PYTHON_PID 2>/dev/null; then
|
122 |
-
echo "Python 应用已停止,重新启动..."
|
123 |
-
cd /app
|
124 |
-
python3 app.py &
|
125 |
-
PYTHON_PID=$!
|
126 |
-
fi
|
127 |
-
|
128 |
-
if ! pgrep cron > /dev/null; then
|
129 |
-
echo "Cron 服务已停止,重新启动..."
|
130 |
-
service cron start
|
131 |
-
fi
|
132 |
-
|
133 |
-
sleep 30
|
134 |
-
done
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|