Développez les variables dans un script upstart

7

J'ai écrit plusieurs scripts pour démarrer transmission-daemon pour plusieurs utilisateurs. Le script est le suivant:

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

Je convertirais ceci:

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

À ceci:

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

Mais le démarrage ne permet pas. Je peux le faire si je déplace ces lignes dans la section script:

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

Mais dans ce cas, le PIDFILE, dans la section post-stop, est vide.
Y a-t-il un moyen de le faire?

    
posée Juan Simón 23.10.2011 - 04:04
la source

1 réponse

10

C'est un bug assez ancien dans upstart:

lien

Pour obtenir la variable en post-stop et en script, il vous suffit de la configurer toutes les deux pour contourner le bogue.

    
réponse donnée SpamapS 10.12.2011 - 08:23
la source

Lire d'autres questions sur les étiquettes