2014-10-12 67 views
-1

在我的树莓派上,我希望自己的书面服务器能够在启动时启动,并在分段故障时重新启动,因此我将其添加到/etc/inittab。问题是,服务器将无法启动inittab中的Raspberry Pi服务器

我加了一行:

1:2345:respawn:/home/gear/lionfish/main /home/gear/lionfish/app 

当我运行从它工作得很好的命令行命令,但服务器不能运行。我已经用ps aux进行了检查,并没有显示出来

我犯了某种错误吗?

编辑:小方面的问题。服务器需要root权限,inittab会自动执行此操作,还是需要向其添加内容?

+1

从inittab启动的可执行文件/脚本可能没有与从常规登录shell启动它们时相同的环境设置。脚本中是否有可能依赖于它们的内容? – 2014-10-12 15:45:18

回答

0

典型问题:

  1. 如前所述,环境设置不同。确保$ PATH是正确的。
  2. 您的程序是否尝试在未挂载的目录中执行?如果是这样,请cd /首先。
  3. 访问文件和目录的限制。
  4. 进程不会从标准输入/标准输出/标准错误中分离。
  5. 该进程在前台而不是后台运行。
  6. 父进程接收终止信号,例如SIGTERM,它也会终止您的进程。尝试通过使用nohup或sigset/sigignore忽略这个(和其他一些)信号。

调试提示:让服务器通过将当前时间附加到保证可写的目录中已有文件的末尾来启动。确保你立即刷新(并关闭)文件指针。那么至少你可以看到它是否完全启动。