BeagleBone Black(Buildroot)启动运行Pyinstaller生成的Python可执行文件报错求助
问题原因及修复方案
- 错误根源:你给
S03test脚本加了Python的解释器声明(#!/usr/bin/env python),但脚本里写的是Shell命令,Python解释器无法解析这种语法,直接导致语法错误。另外相对路径的使用也存在风险。 - 修复步骤:
- 修正脚本解释器:
将脚本第一行改为Shell解释器声明:#!/bin/sh(Buildroot生成的系统默认带/bin/sh) - 改用绝对路径执行程序:
把./../../test/test替换为/test/test,绝对路径不会受当前工作目录影响,更可靠 - 赋予脚本可执行权限:
执行命令:chmod +x /etc/init.d/S03test - (可选)完善init.d脚本结构:
标准init.d脚本需要支持start/stop参数,避免阻塞系统启动,示例结构如下:#!/bin/sh case "$1" in start) echo "Starting test program" /test/test & # 加&让程序后台运行,不卡住启动流程 ;; stop) pkill test ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 - 测试脚本:
运行/etc/init.d/S03test start测试程序启动,用ps | grep test验证进程是否存在
- 修正脚本解释器:
内容的提问来源于stack exchange,提问作者atf
相关产品推荐
相关产品推荐

