This commit is contained in:
ASUS 2025-10-17 11:01:53 +08:00
parent 50c8b61f3b
commit 24f7dc14c2
1 changed files with 65 additions and 0 deletions

65
start_webman.sh Normal file
View File

@ -0,0 +1,65 @@
#!/bin/bash
# 脚本名称start_webman.sh
# 功能:批量启动 Webman 后台进程,拆分日志并避免阻塞
# ==================== 配置区域 ====================
# 1. 定义要启动的 Webman 命令(与需求完全对应)
declare -a WEBMAN_COMMANDS=(
"applysmstemp"
"birthdaygiftsms"
"rabborderprint"
"rabbproductupdate"
)
# 2. 日志存储目录(建议放在 Webman 项目根目录下)
LOG_DIR="./webman_process_logs"
# 3. Webman 脚本路径(若脚本不在当前目录,需写绝对路径,如 /www/webman/webman
WEBMAN_PATH="php webman"
# ==================== 配置区域结束 ====================
# 第一步:创建日志目录(不存在则创建)
if [ ! -d "${LOG_DIR}" ]; then
mkdir -p "${LOG_DIR}"
# 赋予目录读写权限(避免日志写入失败)
chmod 755 "${LOG_DIR}"
echo -e "\033[32m✅ 日志目录不存在,已自动创建:${LOG_DIR}\033[0m"
else
echo -e "\033[32m✅ 日志目录已存在:${LOG_DIR}\033[0m"
fi
# 第二步:批量启动进程
echo -e "\n\033[33m🚀 开始启动 Webman 进程...\033[0m"
echo "=============================================="
for CMD in "${WEBMAN_COMMANDS[@]}"; do
# 拼接完整命令nohup + 日志重定向,避免阻塞)
FULL_CMD="${WEBMAN_PATH} ${CMD}"
# 日志文件按进程名区分(方便后续排查)
LOG_FILE="${LOG_DIR}/${CMD}_$(date +%Y%m%d).log"
echo -e "\n正在启动进程\033[34m${FULL_CMD}\033[0m"
echo "日志文件路径:${LOG_FILE}"
# 核心:执行 nohup 命令,重定向所有输出(避免占用终端)
nohup ${FULL_CMD} > "${LOG_FILE}" 2>&1 &
# 检查启动状态(通过进程名模糊匹配)
PROCESS_PID=$(ps aux | grep "${FULL_CMD}" | grep -v grep | awk '{print $2}')
if [ -n "${PROCESS_PID}" ]; then
echo -e "\033[32m✅ 进程启动成功PID${PROCESS_PID}\033[0m"
else
echo -e "\033[31m❌ 进程启动失败!请查看日志:${LOG_FILE}\033[0m"
fi
echo "----------------------------------------------"
done
# 第三步:输出后续操作提示
echo -e "\n\033[33m📌 操作提示:\033[0m"
echo "1. 查看所有 Webman 进程ps aux | grep 'webman'"
echo "2. 查看指定进程日志tail -f ${LOG_DIR}/[进程名]_日期.log如 tail -f ${LOG_DIR}/applysmstemp_$(date +%Y%m%d).log"
echo "3. 停止进程kill [PID]强制停止kill -9 [PID]"
echo -e "\n\033[32m🎉 所有进程启动命令已执行完毕!\033[0m"