场景:将go程序打包了一个arm64的包live-server,要跑在rk3588的板子上。直接在命令行执行/usr/bin/live-server -bmc http://127.0.0.1是没有问题的,但是如果在service的Unit的配置文件ExecStart项里执行会报"can not find the file"的错误,但是去掉-bmc http://127.0.0.1这个参数就是正常的。

尝试方案1:定义一个过渡的sh脚本,在脚本里执行/usr/bin/live-server -bmc http://127.0.0.1,然后在service的Unit的配置文件ExecStart项里运行这个脚本,同样会报"can not find the file"错误。

最终解决方案:执行带参命令/usr/bin/live-server -bmc http://127.0.0.1是不能走服务的,只能开机的时候自动去执行脚本。

#!/usr/bin/env bash
chmod 755 /opt/live-server/live-server 
echo "aaa:$?"
#/opt/live-server/live-server
#echo "mmm:$?"
echo "wait 10s wait for bmc"
sleep 10s
nohup /opt/live-server/live-server -bmc http://127.0.0.1 > nohup_auth.log 2>&1 &
result=$?
echo "bbb:$result"
while [ $result -ne 0 ]
do
nohup /opt/live-server/live-server -bmc http://127.0.0.1 > nohup_auth.log 2>&1 &
result=$?
echo "bbb:$result"
sleep 3s
done
echo "live-server started"
分类: rk3588_bmc

0 条评论

发表回复

您的电子邮箱地址不会被公开。