代码拉取完成,页面将自动刷新
#!/bin/bash
# ============ 可配置变量 ============
# 目标程序路径(需要运行的可执行文件或命令)
TARGET_PROCESS="echo I'm running"
# 需要如果 systemd 正在运行就不执行的话,请填写任意字符来启用
# 如启用,若检测到 systemd 正在运行,则直接退出脚本。若不启用则会不检测,继续执行
DONT_RUN_IF_SYSTEMD_EXIST=""
# ====== 若无特殊需求,以下请默认 =======
# PID 文件目录(从环境变量 PID_DIR 获取,默认为用户配置目录)
PID_DIR="${PID_DIR:-/tmp/GXDE/gxde-k9/}"
# 自动生成 PROCESS_NAME 为当前 .slimy 文件名(去掉扩展名)
PROCESS_NAME=$(basename "$0" .slimy)
# ============ 脚本逻辑 ============
if [[ -n "$DONT_RUN_IF_SYSTEMD_EXIST" ]] && [ -d /run/systemd/system ]; then
exit 0 # We don't need K9 to take over systemd work if DONT_RUN_IF_SYSTEMD_EXIST
fi
# 确保 PID 文件目录存在
mkdir -p "$PID_DIR" || {
echo "[$PROCESS_NAME] 错误:无法创建 PID 文件目录 $PID_DIR!"
exit 1
}
# 生成 PID 文件路径
PID_FILE="$PID_DIR/$PROCESS_NAME.pid"
# 检查 PID 文件是否存在且有效
if [[ -f "$PID_FILE" ]]; then
PID=$(cat "$PID_FILE" 2>/dev/null)
if [[ -n "$PID" && -e "/proc/$PID" ]]; then
# 如果是命令,简单校验 PID 是否存活
# echo "[$PROCESS_NAME] 检测到命令进程,PID: $PID 正在运行。"
exit 0
else
echo "[$PROCESS_NAME] 无效的 PID 文件,清理:$PID_FILE"
rm -f "$PID_FILE"
fi
fi
# 如果 PID 文件不存在或无效,启动目标进程
echo "[$PROCESS_NAME] 目标进程未运行,正在启动:$TARGET_PROCESS"
bash -c "$TARGET_PROCESS" &
NEW_PID=$!
if [[ -n "$NEW_PID" && -e "/proc/$NEW_PID" ]]; then
echo "$NEW_PID" > "$PID_FILE"
echo "[$PROCESS_NAME] 目标进程启动成功,PID: $NEW_PID"
else
echo "[$PROCESS_NAME] 错误:目标进程启动失败!"
exit 1
fi
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。