![在 rc.d 中启动应用程序会导致终端冻结](https://linux22.com/image/90290/%E5%9C%A8%20rc.d%20%E4%B8%AD%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%BC%9A%E5%AF%BC%E8%87%B4%E7%BB%88%E7%AB%AF%E5%86%BB%E7%BB%93.png)
我有一个使用标准输入和标准输出的应用程序。我希望这个应用程序在所有后台守护进程运行后尽快开始运行。
我在嵌入式系统上使用openwrt,使用scp和serial与其进行通信。
我创建了一个 init.d 脚本,它只是启动应用程序,start=99。
当我启动设备时,在它到达终端后,它只是挂在串行外壳上,但是我可以通过 scp 连接。无论哪种情况,应用程序都没有启动。
是否有正确的方法来启动使用 stdin 和 stdout 的应用程序,以便在操作系统完成启动后启动更正?
答案1
您不应该将 stdin 用于终端,因为它会阻止单模式运行级别,例如等待用户在其 tty 上输入。您可以从任何其他非终端软件应用程序使用标准输入。
但是为什么你使用终端作为用户输入呢?