Skip to content

Commit

Permalink
非特权模式下 适配面板redis问题
Browse files Browse the repository at this point in the history
容器非特权模式下,在面板中启停redis会失败(应该是宝塔面板判断问题),当前适配解决此问题

如下为相关测试结果
使用`/etc/init.d/redis start`后
        `/etc/init.d/redis status`显示正常,`redis-cli ping` 正常连接,`ps aux | grep redis`有redis-server,但面板显示未启动
    在此基础上删除/www/server/redis/redis.pid文件后
        `/etc/init.d/redis status`显示停止,`redis-cli ping` 正常连接,`ps aux | grep redis`有redis-server,面板显示正常启动
    在此基础上执行`/etc/init.d/redis stop`后
        `/etc/init.d/redis status`显示停止,`redis-cli ping` 未连接,`ps aux | grep redis`无 redis-server,面板显示未启动
    在此基础上执行`/www/server/redis/src/redis-server /www/server/redis/redis.conf`后
        `/etc/init.d/redis status`显示正常,`redis-cli ping` 正常连接,`ps aux | grep redis`有redis-server,面板显示启动
    在此基础上删除/www/server/redis/redis.pid文件后
        `/etc/init.d/redis status`显示停止,`redis-cli ping` 正常连接,`ps aux | grep redis`有redis-server,面板显示正常启动
    在此基础上执行`service redis restart`,此命令显示重启成功
        `/etc/init.d/redis status`显示正常,`redis-cli ping` 正常连接,`ps aux | grep redis`有redis-server,但面板显示未启动
    在此基础上删除/www/server/redis/redis.pid文件后
        `/etc/init.d/redis status`显示停止,`redis-cli ping` 正常连接,`ps aux | grep redis`有redis-server,面板显示正常启动
  • Loading branch information
eyunzhu committed Nov 8, 2024
1 parent 60a5f58 commit 17e9cff
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
3 changes: 0 additions & 3 deletions dockerfiles/dockerfile.baota-lnmp
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ RUN tar xzf /www_backup.tar.gz -C / \
&& bash install_soft.sh 4 install mysql 5.7 \
&& bash install_soft.sh 4 install phpmyadmin 5.1 \
# 压缩删除/www 解决挂载目录时被宿主机覆盖的问题
&& for script in ${init_scripts}; do /etc/init.d/${script} stop; done \
# 解决文件恢复后redis无法启动的问题
&& rm -f /www/server/redis/redis.pid \
&& rm /www/reserve_space.pl \
&& rm /www/server/data/ib_logfile* \
&& tar czf /www_backup.tar.gz -C / www \
Expand Down
23 changes: 18 additions & 5 deletions scripts/boot.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,24 @@ fi
/usr/bin/bt stop
/usr/bin/bt start

# 扫描并重启所有服务
init_scripts=$(ls /etc/init.d)
echo "扫描并重启所有服务"
for script in ${init_scripts}; do
/etc/init.d/${script} restart

# 扫描并启动服务
for script in /etc/init.d/*; do
if [[ "$script" =~ ^/etc/init.d/(bt|mysqld|nginx|httpd|php-fpm-74|php-fpm-82)$ ]]; then
echo -e "启动 ${script##*/}"
${script} start
else if [[ "$script" =~ ^/etc/init.d/(redis)$ ]]; then
if ps -p 1 | grep -q "systemd"; then
echo -e "当前容器在特权模式下,执行正常启动redis"
/etc/init.d/redis restart
else
echo -e "当前容器为非特权模式,适配宝塔面板中redis无法启动的问题"
rm -rf /www/server/redis/redis.pid
/etc/init.d/redis stop > /dev/null
/www/server/redis/src/redis-server /www/server/redis/redis.conf
fi
fi
fi
done


Expand Down

0 comments on commit 17e9cff

Please sign in to comment.