This commit is contained in:
parent
50c8b61f3b
commit
24f7dc14c2
|
|
@ -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"
|
||||
Loading…
Reference in New Issue