应用程序不从 inittab 启动

应用程序不从 inittab 启动

我正在尝试通过嵌入式系统中的 inittab 启动应用程序。希望通过 inittab 而不是通过 init.d 脚本来执行此操作是为了利用重生。该系统上没有 systemd。我在 inittab 中有以下条目:myapp::respawn:/path/to/my/app。尽我所能,它无法启动。每我观察到以下情况(手动启动):

sh -c /path/to/my/app         # works
sh -c exec /path/to/my/app    # does not work
sh -c 'exec /path/to/my/app'  # works

回答以下 shell 脚本也可以工作:

#!/bin/sh
exec /path/to/my/app

目前,我通过 init.d 脚本启动应用程序:su - root -c '/path/to/my/app &'它可以工作,但同样的命令在 inittab 中也不起作用。我的后备方案是从 init.d 启动另一个监视器脚本,如果在ps输出中找不到它,它会继续运行并重新启动我的应用程序,但通过 inittab 获得“自动”重生工具会更好。

答案1

就在我发帖之后,依稀记得过去注意到 inittab 标签需要低于一定的长度(这是一个 buildroot 生成的系统)。事实上,将 inittab 条目更改为app::respawn:/path/to/my/app有效!看起来标签必须为 4 个字符或更少。留下这个问题以防它对某人有帮助。

相关内容