场景:将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"
0 条评论