J'ai un très petit travail de démarrage dans /etc/init/tsm.conf
pour démarrer le client de sauvegarde après le démarrage du réseau. Cela fonctionne juste bien si je le démarre/l’arrête manuellement via service tsm start|stop|status
. Mais service tsm enable
dit tsm: unrecognized service
. Donc, il ne démarre pas automatiquement au démarrage. Sudo service --status-all
ne l'affiche pas non plus dans la liste des tâches connues.
C'est ici:
start on started networking
stop on stopped networking
respawn
script
#!/bin/bash
dsmc schedule > /dev/null
end script
Je lance Ubuntu 12.04.4. La version Upstart est 1.5-0ubuntu7.2. Quelqu'un pourrait-il m'aider? :)
UPDATE
L'utilisation de initctl list
et d'autres commandes initctl affiche mon travail.
D'après mon expérience, vous n'avez rien à "activer", il suffit de mettre le fichier .conf dans/etc/init et de profiter de tout.
Vous pouvez vérifier que le script est exécuté en ajoutant une ligne comme celle-ci:
echo "alive" > /alive_and_well
Cela créera le fichier "alive_and_well" dans votre répertoire racine si le script est exécuté.
Si ce n'est pas le cas, le problème provient probablement de la strophe "start on". Voici ce que j'utilise pour de telles choses (connues pour fonctionner):
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
De plus, les shebangs dans les scripts Upstart ne sont pas pris en charge. "#!/Bin/bash" est donc inutile (autant que je sache).
Jetez un coup d'œil aux autres travaux parus listés dans /etc/init.d/
. Sur mon système, ils sont tous des liens symboliques vers /lib/init/upstart-job
, ce qui permet à la commande service
de fonctionner (je suis en train de lancer Saucy).
Essayez de créer le même lien symbolique si vous voulez que la commande service
fonctionne.
Sinon, utilisez start
, stop
et restart
directement.
On dirait que le service est en cours d’exécution, mais vous ne voyez pas le comportement que vous attendez de lui. S'il doit être exécuté avec un certain utilisateur ou avec des variables d'environnement définies, vous devrez peut-être les spécifier. Assurez-vous que la commande dsmc est dans votre PATH ou changez le répertoire dans lequel il réside.
À partir du livre de recettes Upstart: http://upstart.ubuntu.com/cookbook/
Variables d'environnement: Upstart vous permet de définir des variables d'environnement qui seront accessibles aux travaux pour lesquels ils sont définis dans les fichiers de configuration de travaux. Les variables d'environnement sont définies à l'aide du mot-clé env.
env ENV_VAR=value
Définir l'ID de groupe: Modifications apportées au groupe avant l'exécution du processus du travail.
setgid <groupname>
Définir l'ID utilisateur: Modifications apportées à l'utilisateur avant l'exécution du processus du travail.
setuid <username>
Changer de répertoire: Exécute les processus du travail avec un répertoire de travail dans le répertoire spécifié à la place de la racine du système de fichiers.
chdir <directory>