在upstart的.conf脚本中运行bash脚本

11

我想在启动时运行我的bash脚本(kvm_manage),但它无法正常工作。这是我的upstart .conf脚本:

      description "kvm start skript"

      start on local-filesystem
      stop on shutdown

      respawn 

      script
         exec /etc/kvm_manage start
      end script

我想用"start"参数运行它。这可行吗?我需要改变什么?

谢谢帮助。

1个回答

18

通过exec运行带参数的命令是可以的——可以参考http://upstart.ubuntu.com/wiki/Stanzas#exec 中给出的例子。

然而,upstart将使用/bin/sh而不是bash,因此如果您的脚本需要bash,则需要类似于:

script
    exec bash -c '/etc/kvm_manage start'
end script

更新:另外,根据Guss在评论中的建议,对于简单情况可以使用exec段落代替:

exec bash -c '/etc/kvm_manage start'

如果 kvm_manage 是带有 she-bang (#!/bin/bash) 的可执行文件,则只需执行以下命令:

exec /etc/kvm_manage start

2
“script” 用于运行多个命令,我认为在这种情况下最好使用“exec”部分。实际上,它与上面的示例非常相似:只需删除“script”部分,只留下“exec bash -c '/etc/kvm_manage start'”。此外,如果“kvm_manage”是一个带有 she-bang 的可执行文件,则甚至不需要那个部分,只需使用“exec /etc/kvm_manage start”。 - Guss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接