Запуск сценария bash в сценарии upstart .conf

Я хотел бы запустить свой скрипт 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

Я хочу запустить его с аргументом «старт». Это возможно? Что мне следует изменить?

Спасибо за помощь


person Joffo    schedule 10.12.2013    source источник


Ответы (1)


Выполнение команды через exec с аргументами допустимо — см. http://upstart.ubuntu.com/wiki/Stanzas#exec который дает такой пример.

Однако выскочка будет использовать /bin/sh, а не bash, поэтому, если вашему сценарию нужен bash, вам понадобится что-то вроде

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

Обновление: см. также предложение Гасса в комментариях использовать строфу exec для простых случаев:

exec bash -c '/etc/kvm_manage start'

Или, если kvm_manage - это исполняемый файл с бабой (#!/bin/bash), то просто:

exec /etc/kvm_manage start
person DNA    schedule 10.12.2013
comment
script используется для запуска нескольких команд, я думаю, что в этом случае лучше использовать строфу exec. На самом деле это очень похоже на приведенный выше пример: просто удалите script части и оставьте только exec bash -c '/etc/kvm_manage start'. Кроме того, если kvm_manage является исполняемым файлом с шишкой, то вам даже это не нужно, просто используйте exec /etc/kvm_manage start. - person Guss; 29.04.2014