intel/intel-iot-services-orchestration-layer

Builtin在工作流无法停止后消失

w3jc opened this issue · 15 comments

w3jc commented

我也出现了workflow to stop in status loaded rather than enabled的提示,然后Edison重启后Builtin就消失了,Hubs中只剩下Edison DFRobot了。写入的镜像是英特尔杯官网提供的,浏览器chrome52。正在尝试重新写入镜像。

w3jc commented

重新写入镜像后builtin出现了,但是之前的测试程序都没有了,请问有什么办法将工程备份到电脑而不仅仅存放在服务器上?

Hi 你好

  • 你的问题能否重现, 即"workflow to stop in status loaded rather than enabled的提示,然后Edison重启后Builtin就消失了". 这样会对我们分析并解决这个bug有很大的帮助. 在遇到同样的问题, 可以把工作流截图发在这里.
  • 出现builtin消失的问题, 不需要重新写入镜像. 你可以把node_modules/hope-demo/center/appbundle 下面的文件全都删了, 即可. (这只是一个workaround, 最终我们还是要找到导致bug的根本原因)
  • 工作流存放在node_modules/hope-demo/center/appbundle 下. 自己加的service 存放在node_modules/hope-demo/<your hub name>/thingbundle/<your thing name>/<your service name>下. 你可以备份这些文件.
  • 在你已经出现builtin消失的原因是因为工作流文件为空导致格式不对. 此时你已经不能备份工作流. 我怀疑工作流就没有保存成功. 但是还不能重现.
w3jc commented

请问如何让sol像arduino的程序一样在Edison启动后自动运行?

你好,

  • 开机自启动 IoT SOL, 这就是在linux系统中开机自启动某一个程序/service. 你可以参考这里
  • 如果是自启动某一个你创建的工作流. 这个功能现在还没有, 如果你有兴趣的话, 可以自己尝试增加这个功能:)
w3jc commented

昨天尝试了那个方法来启动但sol但是会显示启动服务失败

看看./startkit_hub.log 是不是mraa找不到

默认的mraa是放在/usr/lib/node_modules/mraa 下
而放到startup service后, 该路径不在nodejs package search path中
可以将该文件夹copy到 /home/root/node_modules/mraa 中
或者直接在/home/root 下面 npm install mraa

w3jc commented

依旧失败,请问之前有人成功过吗?startkit_hub.log里好像什么也没有。
root@hardworking:~# systemctl status start_startkit.service
● start_startkit.service
Loaded: loaded (/etc/init.d/start_startkit.sh)
Active: failed (Result: exit-code) since Wed 2016-08-17 08:25:07 UTC; 50s ago
Process: 188 ExecStart=/etc/init.d/start_startkit.sh start (code=exited, status=203/EXEC)

Aug 17 08:25:07 hardworking systemd[1]: start_startkit.service: control process exited, code=exited status=203
Aug 17 08:25:07 hardworking systemd[1]: Failed to start start_startkit.service.
Aug 17 08:25:07 hardworking systemd[1]: Unit start_startkit.service entered failed state.

start_startkit.service 的内容你贴一下

w3jc commented

请问如何查看start_startkit.service的内容?刚刚接触Linux表示对此一窍不通。

这个文件不是你写的吗?直接vi打开

w3jc commented

我只是将启动脚本start_startkit.sh复制到了/etc/init.d 下面,并没有写什么start_startkit.service。

启动脚本里面是相对路径, 你改成绝对路径试试, 并在文件开始加上 #!/bin/sh

w3jc commented

改成了绝对路径,当启动时没有提示失败也没有显示服务开始。我测试了直接在/etc/init.d目录执行start_startkit.sh没有显示错误但是并不能通过ip:8080登录。如果大家都没成功过的话我就放弃好了。

可以成功执行:

#!/bin/sh
cd /home/root/iot-sol
./run_demo broker &
sleep 5
./run_demo center &
sleep 5
./run_demo startkit &
sleep 5

w3jc commented

总算是成功了,这回终于可以免去每次启动都要登录Linux启动sol的步骤了,非常感谢。