#!/bin/bash # setup-gpio85-systemd.sh # 一键安装 GPIO85 初始化脚本 + systemd 服务 # 日志去掉,直接操作 GPIO85 # ---------------------- 权限检查 ---------------------- if [ "$EUID" -ne 0 ]; then echo "请使用 root 用户或 sudo 执行此脚本" exit 1 fi # ---------------------- 配置变量 ---------------------- GPIO=85 INIT_SCRIPT=/usr/local/bin/init-gpio85.sh SERVICE_FILE=/etc/systemd/system/gpio85.service # ---------------------- 创建 GPIO 初始化脚本 ---------------------- cat << EOF > $INIT_SCRIPT #!/bin/bash # 自动初始化 GPIO$GPIO GPIO=$GPIO # 如果 gpio$GPIO 未被 export,则 export if [ ! -d /sys/class/gpio/gpio\$GPIO ]; then echo \$GPIO > /sys/class/gpio/export sleep 0.1 fi # 设置方向为输出 echo out > /sys/class/gpio/gpio\$GPIO/direction sleep 0.05 # 设置权限为 777 chmod 777 /sys/class/gpio/gpio\$GPIO/* EOF chmod +x $INIT_SCRIPT echo "✅ GPIO$GPIO 初始化脚本创建完成:$INIT_SCRIPT" # ---------------------- 创建 systemd 服务 ---------------------- cat << EOF > $SERVICE_FILE [Unit] Description=Initialize GPIO$GPIO After=multi-user.target [Service] Type=oneshot ExecStart=$INIT_SCRIPT RemainAfterExit=yes User=root [Install] WantedBy=multi-user.target EOF echo "✅ systemd 服务创建完成:$SERVICE_FILE" # ---------------------- 启用并启动服务 ---------------------- systemctl daemon-reload systemctl enable gpio85.service systemctl start gpio85.service # ---------------------- 输出状态 ---------------------- systemctl status gpio85.service --no-pager echo "✅ GPIO$GPIO systemd 服务已启用并启动"