【问题标题】:Running bash script in upstart .conf script在 upstart .conf 脚本中运行 bash 脚本
【发布时间】:2013-12-10 17:50:49
【问题描述】:

我想在启动时运行我的 bash 脚本 (kvm_manage),但它不起作用。这是我的新贵 .conf 脚本:

      description "kvm start skript"

      start on local-filesystem
      stop on shutdown

      respawn 

      script
         exec /etc/kvm_manage start
      end script

我想用参数“start”运行它。有可能的?我应该改变什么?

感谢帮助

【问题讨论】:

    标签: bash startup upstart


    【解决方案1】:

    通过带有参数的exec 运行命令很好 - 请参阅http://upstart.ubuntu.com/wiki/Stanzas#exec,它给出了这样一个示例。

    然而,upstart 将使用 /bin/sh 而不是 bash,所以如果你的脚本需要 bash,你需要类似的东西

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

    更新:另请参阅 Guss 的 cmets 中关于使用 exec 节代替简单情况的建议:

    exec bash -c '/etc/kvm_manage start'
    

    或者如果kvm_manage 是带有she-bang (#!/bin/bash) 的可执行文件,那么只需:

    exec /etc/kvm_manage start
    

    【讨论】:

    • script 用于运行多个命令,我认为在这种情况下最好改用exec 节。它实际上与上面的示例非常相似:只需删除script 部分并仅留下exec bash -c '/etc/kvm_manage start'。此外,如果 kvm_manage 是带有 she-bang 的可执行文件,那么您甚至不需要它,只需使用 exec /etc/kvm_manage start
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2017-01-11
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多