Развернуть переменные в сценарии upstart

7

Я написал несколько сценариев upstart для запуска transmission-daemon для нескольких пользователей. Сценарий таков:

start on (local-filesystems and net-device-up IFACE=eth0 and runlevel [235])
stop on runlevel [016]

kill timeout 50

respawn

env USER=user
env PIDFILE=/var/run/transmission-user.pid

script
    DAEMON=$(which transmission-daemon) || exit 0
    CONFIGDIR=/home/$USER/.config/transmission-daemon

    exec start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- -f --config-dir $CONFIGDIR --logfile $CONFIGDIR/daemon.log
end script

post-stop exec rm -f $PIDFILE

Я бы преобразовал это:

env USER=user
env PIDFILE=/var/run/transmission-user.pid

Для этого:

env USER=user
env PIDFILE=/var/run/transmission-$USER.pid

Но выскочка не позволяет. Я могу сделать это, если переместить эти строки в секцию сценария:

script
    USER=user
    PIDFILE=/var/run/transmission-$USER.pid
    ...
end script

Но в этом случае PIDFILE в разделе после остановки пуст.
Есть ли способ сделать это?

    
задан Juan Simón 23.10.2011 в 02:04
источник

1 ответ

10

Это довольно старая ошибка при выскочке:

Ссылка

Чтобы получить переменную в post-stop и script ... вам просто нужно установить ее оба раза, чтобы обойти ошибку.

    
ответ дан SpamapS 10.12.2011 в 07:23