p_ysk/start_webman.sh

66 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"