linux - 使用 inittab 中的 respawn 条目重新启动 linux 应用程序不起作用

标签 linux embedded-linux fedora init.d inittab

场景:
我有一个在 linux 上运行的进程,该进程在后台通过连接在 /etc/init.d/ 的脚本启动,称为 MyApp 这只是一个没有的 shell 脚本.sh。以下是我的init.d脚本脚本

#!/bin/sh

PARAM=$1

case ${PARAM} in
    start)
        MyApp &
        ;;
    stop)
        killall -9 MyApp
        ;;
    *)
        echo "Usage: $0 {start|stop}" >&2
        exit 1
        ;;
esac

如您所见,它在后台启动 MyApp

目标与问题:
我想在崩溃时重新启动 MyApp。我试图找出这是如何完成的。看起来我必须从我阅读的各种链接向 /etc/inittab 添加一个条目。所以我在 /etc/inittab 中添加了以下条目。

MyApp:12345:respawn:MyApp

问题:
以上似乎不起作用,我怎样才能让它正常工作?我在这里做错了什么?

注意:
我正在执行 killall -9 MyApp 并期望它重新启动,因为我添加到 /etc/inittab 的条目。这种预期是否正确?

最佳答案

case ${PARAM} in
    start)
        (while :; do MyApp ;done) &
        ;;

关于linux - 使用 inittab 中的 respawn 条目重新启动 linux 应用程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52117991/

相关文章:

filesystems - 如何在只读 rootfs 上创建可加载文件系统?

java - 如何在局域网内的两个不同系统上部署 Web 服务?

Rstudio 不启动 "Unable to determine real path of R script"由于 R 编译期间的先前错误

linux - 无法将 2 个 Linux 变量连接成 1 个

linux - 为什么我不能拦截子进程的段错误信号?

embedded - 晶核MPU时钟频率差异

version-control - 对嵌入式 linux 项目执行版本控制的最佳方法?

unix - 无法从另一台计算机访问 Unix 上的 Tomcat

linux - 输入一串字符并输出为大写

linux - 使用perl cgi在网页上显示命令输出