Ubuntu 10.04
J'ai créé ce script ( /etc/init/pure-ftpd.conf ):
# pure-ftpd - FTP server
description "Pure-FTPd server"
start on filesystem
stop on runlevel S
respawn
respawn limit 10 5
pid file /var/run/pure-ftpd.pid
console output
pre-start script
test -x /usr/local/sbin/pure-ftpd || { stop; exit 0; }
end script
exec /usr/local/sbin/pure-ftpd --maxclientsnumber 2 --maxclientsperip 10 --prohibitdotfileswrite --prohibitdotfilesread --noanonymous --chrooteveryone --dontresolve --nochmod --pidfile /var/run/pure-ftpd.pid
Mais...
# start pure-ftpd
start: Unknown job: pure-ftpd
et
# service pure-ftpd start
start: Unknown job: pure-ftpd
Quel est le problème?
Est-il nécessaire de faire quelque chose de plus?
Est-il nécessaire de créer un script dans /etc/init.d également?
Réponses:
Cela signifie généralement que vous avez une erreur dans le
.conf
fichier - par exemple, je ne suis pas sûr que lapid
strophe soit prise en charge dans 10.04,stop
ne peut pas être utilisée dans le script, etc.J'essayais de démarrer le fichier à partir de zéro (avec seulement
start
,stop
etc.), puis de le construire lentement en ajoutant de plus en plus de lignes et en le testant viastart pure-ftpd
.Par exemple:
la source
pid
strophe a été supprimée depuis la version0.5.0 2008-08-12 "One of those deaf-mutes"
. Ne l'utilisez pas.Vous pouvez également exécuter
init-checkconf
pour vérifier la syntaxela source
start
commande pour vous donner un message d'erreur plus informatif ...Tout d’abord, vous pouvez vérifier que votre travail est connu pour sa mise en service:
... où
your_job_name
est le nom de votre script de mise à jour moins l'.conf
extension.Si ce n'est pas le cas, vous pouvez essayer de recharger la configuration puis de revérifier:
Puis réessayez pour commencer votre travail:
Si vous ne vous connectez pas
/var/log/daemon.log
ou/var/log/syslog
avant, vous pourriez en avoir maintenant.la source
La référence la plus pertinente pour la syntaxe du fichier de travail sera disponible lorsque vous exécuterez la commande:
sur votre système. Pour Ubuntu 10.04, comme vous l'avez constaté dans la réponse précédente, la syntaxe du fichier pid est incorrecte.
Chaque fois que vous obtenez cette erreur "travail inconnu", c'est une bonne idée de vérifier les journaux (avant 11.04, /var/log/daemon.log, 11.04 et plus, tout se trouve dans / var / log / syslog).
Vous pouvez voir une erreur comme celle-ci:
la source
Quoi qu'il en soit, je suis ici parce que j'ai eu le même problème, mais ma syntaxe était correcte à 100%.
Après un certain débogage, j'ai découvert un autre problème pouvant causer l' erreur " Travail inconnu" :
upstarts utilise inotify pour surveiller les modifications de fichiers .conf et les tâches d’installation automatique, c’est très cool (pour cela, vous n’avez pas besoin de quelque chose comme update.rc avec upstart!), mais cela peut ne pas être parfait si vous (comme moi dans ce cas) utilisez programme FTP / SCP permettant de télécharger et d’éditer des configurations sur des serveurs distants, le travail peut être désinstallé en mode silencieux par l’arrêté lors de la modification de fichier de cette manière.
simplement réparer ça (ça m'a sauvé)
il générera des événements inotify pour actualiser toutes les communications parvenues.
la source
J'ai eu le même problème dans mes conteneurs Ubuntu 14.04 Docker. Il s'avère que l'image Ubuntu 14.04 (sinon d'autres) de Docker ne prend pas en charge Upstart de la même manière qu'une machine virtuelle complète.
Pour répondre à cette question, pourquoi le service ne démarre pas, c'est parce qu'initctl n'est pas un programme Upstart réel: il est mappé sur / bin / true.
Pour vérifier, exécutez ce qui suit sur un conteneur Ubuntu 14.04 Docker contre Vagrant et contre un droplet DigitalOcean
Vous verrez que initctl n’est pas le même dans Docker et les autres.
Un lien qui peut approfondir votre compréhension. Https://github.com/docker/docker/issues/1024
la source