Expandir variáveis no script upstart

7

Eu escrevi vários scripts prontos para iniciar transmission-daemon para vários usuários. O script é este:

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

Eu converteria isso:

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

Para isso:

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

Mas o upstart não permite. Eu posso fazer isso se eu mover essas linhas para a seção de script:

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

Mas, neste caso, o PIDFILE, na seção pós-parada, está vazio.
Existe alguma maneira de fazer isso?

    
por Juan Simón 23.10.2011 / 04:04

1 resposta

10

Este é um bug bastante antigo no upstart:

link

Para obter a variável no pós-stop e no script ... você só precisa definir as duas vezes para solucionar o problema.

    
por SpamapS 10.12.2011 / 08:23