尝试在proot环境安装docker,结果当然是失败了
然后还差点把整个环境给装崩了
自己写的service_init.sh 文件有问题
经过尝试mysql启动需要root密码,之前是mysql在启动状态所以成功执行,但是一旦服务器宕机重启mysql需要重启service_init.sh也需要输入密码,所以就卡在了mysql启动进程。
以及最重要的杀死进程,在proot环境下是无法进行的,所以需要进入termux环境下进行
解决方案1.service mysql start 或者 ./etc/init.d/mysql start
解决方案2.修改service_init.sh 文件(错误的)
#!/bin/bash
# 服务控制脚本 (支持 start/stop/restart 参数)
# 2025-03-16 更新
# 服务路径配置
MYSQL_CMD="/etc/init.d/mysql"
HALO_JAR="$HOME/app/halo.jar"
HALO_CONFIG="$HOME/.halo2/"
ALIST_BIN="/opt/alist/alist"
DDNS_GO="$HOME/ddns/ddns-go"
LOG_DIR="$HOME/service_logs"
start_services() {
mkdir -p $LOG_DIR
# 启动MySQL并自动输入密码
echo "Starting MySQL..."
echo "017100" | sudo -S service mysql start >> $LOG_DIR/mysql.log 2>&1
echo "MySQL started."
echo "Halo start..."
# 启动Halo并记录日志
nohup java -Dfile.encoding=UTF-8 -jar $HALO_JAR \
--spring.config.additional-location=optional:file:$HALO_CONFIG \
>> $LOG_DIR/halo.log 2>&1 &
echo "Halo ok"
# 启动Alist
nohup $ALIST_BIN server >> $LOG_DIR/alist.log 2>&1 &
# 启动DDNS-Go
nohup $DDNS_GO >> $LOG_DIR/ddns.log 2>&1 &
echo "服务已启动 | 查看日志: ls $LOG_DIR"
}
# 停止所有服务。这个业务逻辑是有问题的,在proot环境中无法直接使用kill命令杀掉进程
stop_services() {
# 停止Java服务(Halo)
pkill -f "halo.jar" >> $LOG_DIR/halo_stop.log 2>&1
# 停止Alist
pkill -f "alist server" >> $LOG_DIR/alist_stop.log 2>&1
# 停止DDNS-Go
pkill -f "ddns-go" >> $LOG_DIR/ddns_stop.log 2>&1
echo "Halo. DDNS. Alist服务已停止"
}
# 根据参数执行操作
case "$1" in
start)
start_services
;;
stop)
stop_services
;;
restart)
stop_services
sleep 3
start_services
;;
*)
echo "用法: $0 {start|stop|restart}"
exit 1
esac
最终解决方案:
service_init.sh文件:
#!/bin/bash
# 服务控制脚本 (支持 start/stop/restart 参数)
# 2025-03-22 更新
# 服务路径配置
MYSQL_CMD="/etc/init.d/mysql"
HALO_JAR="$HOME/app/halo.jar"
HALO_CONFIG="$HOME/.halo2/"
ALIST_BIN="/opt/alist/alist"
DDNS_GO="$HOME/ddns/ddns-go"
LOG_DIR="$HOME/service_logs"
FILECODEBOX="/opt/filecodebox/FileCodeBox/venv/bin/python3"
start_services() {
mkdir -p $LOG_DIR
# 启动MySQL并自动输入密码
echo "Starting MySQL..."
echo "017100" | sudo -S service mysql start >> $LOG_DIR/mysql.log 2>&1
echo "MySQL started."
echo "Halo start..."
# 启动Halo并记录日志
nohup java -Dfile.encoding=UTF-8 -jar $HALO_JAR \
--spring.config.additional-location=optional:file:$HALO_CONFIG \
>> $LOG_DIR/halo.log 2>&1 &
echo "Halo started."
# 启动Alist
echo "Starting Alist..."
nohup $ALIST_BIN server >> $LOG_DIR/alist.log 2>&1 &
echo "Alist started."
# 启动DDNS-Go
echo "Starting DDNS..."
nohup $DDNS_GO >> $LOG_DIR/ddns.log 2>&1 &
echo "DDNS started."
# 启动FileCodeBox
echo "Starting FileCodeBox..."
cd /opt/filecodebox/FileCodeBox
nohup /opt/filecodebox/FileCodeBox/venv/bin/python3 /opt/filecodebox/FileCodeBox/main.py >> $LOG_DIR/filecodebox.log 2>&1 &
cd -
echo "FileCodeBox started."
echo "服务已启动 | 查看日志: ls $LOG_DIR"
}
# 停止所有服务
stop_services() {
echo "Halo. DDNS. Alist. FileCodeBox 关闭服务请前往8022执行 service_stop.sh"
}
# 根据参数执行操作
case "$1" in
start)
start_services
;;
stop)
stop_services
;;
restart)
stop_services
sleep 3
start_services
;;
*)
echo "用法: $0 {start|stop|restart}"
exit 1
esac
service_stop.sh
#!/bin/bash
# 服务控制脚本
# 2025-03-21 更新
# 停止Java服务(Halo)
pkill -f "halo.jar" >> /data/data/com.termux/files/home/stop-log/halo_stop.log 2>&1
# 停止Alist
pkill -f "alist server" >> /data/data/com.termux/files/home/stop-log/alist_stop.log 2>&1
# 停止DDNS-Go
pkill -f "ddns-go" >> /data/data/com.termux/files/home/stop-log/ddns_stop.log 2>&1
# 停止 MYSQL
pkill -f "mysqld" >> /data/data/com.termux/files/home/stop-log/mysql_stop.log 2>&1
pkill -f "/opt/filecodebox/FileCodeBox/main.py" >> /data/data/com.termux/files/home/stop-log/filecodebox_stop.log 2>&1
echo "Halo. DDNS. Alist. Mysql. FileCodeBox服务已停止"