如何使用 upstart 运行 nohup 脚本?

如何使用 upstart 运行 nohup 脚本?

我正在移植一些 SysV 风格的服务脚本HBase(一个 Java 服务)到 Upstart。

sysv 脚本不会java直接调用,而是调用hbase-daemon.sh。这是一个start-stop-daemon随软件包附带的类似工具,它会引入大量配置,最终以nohup java ... &守护进程的形式实际运行。

由于涉及到中的配置逻辑hbase-daemon.sh,我宁愿不修改或重写它(删除nohup),而是让 upstart 直接调用它。

似乎成为expect子句是 for,但在我的例子中它不起作用。即使是expect daemon(两个 fork 的情况),我最终还是跟踪错误的 pid在服务启动时。这表明我的场景分叉太多,或者可能nohup不应该用来处理expect,或者是其他什么。

如何使用 upstart 来管理需要通过调用脚本启动的服务nohup

答案1

您可以尝试使用 crontab,并在终端中输入以下内容:

 crontab -f nohup

然后输入:

 pyton(version) -v -f echo 'nohup' & disown

然后在终端中输入:

 crontab reboot

这样也许能很好地发挥作用。

相关内容