【发布时间】:2011-10-01 14:04:37
【问题描述】:
我有一个调用 java jar 文件并运行应用程序的 shell 脚本。没有办法解决这个问题,所以我必须使用我所拥有的。
当你执行这个 shell 脚本时,它会输出应用程序的状态,然后就坐在那里(几乎是一个控制台);因此,当程序发生问题时,它会更新屏幕。这就像任何正常的非守护进程/后台进程一样。摆脱它的唯一方法是 ctrl-c,然后完全结束该过程。我知道我可以通过 path_to_shell_script/script.sh & 来解决这个问题,这将为我的会话提供背景(如果我想注销,我可以使用 nohup)。
我的问题是,我只是不知道如何将此脚本放入初始化脚本中。我已经编写了大部分初始化脚本,但是当我尝试对其进行守护时,它不起作用。我几乎让它工作了,但是,当我运行 initscript 时,它实际上跨越了脚本上的同一个“控制台”,并且一直坐在那里,直到我按下 ctrl-c。这是有问题的行:
daemon ${basedir}/$prog && success || failure
问题是我不能只处理 daemon ${basedir}/$prog 部分的背景,我认为这就是我遇到问题的地方。有没有人成功地为 shell 脚本创建了一个 init 脚本?此外,此 shell 脚本不可守护(您可以将其作为后台,但底层程序不支持守护程序选项,否则我只会让应用程序完成所有工作)。
【问题讨论】: