J'ai créé un fichier de service systemd (spécifiquement pour svnserve; j'utilise en fait l'exemple ci-dessous https://stackoverflow.com/a/40584047/464087 ), et lorsque je l'active, en tapant
Sudo systemctl enable svnserve
Je reçois la réponse
Failed to execute operation: Invalid argument
Fonctionnement
Sudo systemctl status svnserve
les rendements
● svnserve.service - Subversion protocol daemon
Loaded: loaded (/etc/systemd/system/svnserve.service; enabled; vendor preset: enabled)
Active: inactive (dead)
ne me donne aucune idée de ce qui ne va pas. Je peux alors démarrer le service sans erreur, et il semble fonctionner normalement, et après avoir démarré le statut systemctl, je n'ai toujours aucune idée de ce qui ne va pas:
● svnserve.service - Subversion protocol daemon
Loaded: loaded (/etc/systemd/system/svnserve.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-01-09 22:10:14 UTC; 6s ago
Process: 9677 ExecStart=/usr/bin/svnserve $DAEMON_ARGS (code=exited, status=0/SUCCESS)
Main PID: 9678 (svnserve)
Tasks: 1
Memory: 964.0K
CPU: 2ms
CGroup: /system.slice/svnserve.service
└─9678 /usr/bin/svnserve --daemon --pid-file /run/svnserve/svnserve.pid --root /srv/svn/repos --log-file /var/log/svnserve/svnserve.log
Alors, que signifie ce message d'erreur? Et à quel niveau de choses un "argument invalide" est-il censé s'appliquer? Un argument pour la commande svnserve? Certains biens dans le fichier de service? Un argument de ligne de commande à la commande servicectl elle-même?
FWIW c'est sur un serveur Ubuntu 16.04 LTS.
J'ai eu un cas similaire, dans mon cas le problème est parti après le retrait de la ligne Alias de la section [Installer]. Merci à Anton dans un autre fil de discussion: https://stackoverflow.com/a/34978908/2711456 - Le nom d'alias peut être différent du nom du service.
J'ai vécu exactement la même chose. La suppression de "Alias" fonctionne, mais en réalité, alias peut avoir le même nom que le fichier de service.
La raison pour laquelle cela ne fonctionne pas est liée au répertoire dans lequel le fichier de service est placé.
Ce que fait systemd, c’est créer un alias dans le répertoire "/ etc/systemd/system" et dans le répertoire cible qui souhaite ce service. Si le fichier de service d'origine se trouve déjà dans "/ etc/systemd/system", lorsque systemd tente d'activer ce service, l'alias ne peut pas être créé.
La solution met le fichier de service dans le répertoire "/ lib/systemd/system /" et cela fonctionnera.
vous essayez ceci, j'étais résolu le:
cd /etc/systemd/system/multi-user.target.wants
ls
erreur de service de recherche de nom "Échec de l'exécution de l'opération: argument non valide"
rm -rf votrenom.service
cd/etc/systemd/system /
nano votrenom.service
éditez votre service de contenu (peut-être votre erreur de contenu (vérification de symboy [], ... bla..bla)
==> enregistrez-le
systemctl daemon-reload
systemctl activer votre nom.service
bonne chance!!!
Ce que j'ai aussi trouvé, c'est le bogue avec des commentaires (au moins sur systemd 219). Si vous avez un commentaire après un code de fichier de service, il ne pourra pas l'activer. Amenez donc le commentaire dans la nouvelle chaîne ou supprimez-le. J'ai testé et cela fonctionne pour moi:
WantedBy=multi-user.target
# runs in init 3 (multi-user mode for linux)
celui-ci ne fonctionnera pas:
WantedBy=multi-user.target # runs in init 3 (multi-user mode for linux)
quelques discussions sont ici: https://github.com/rabbitmq/rabbitmq-server/issues/1422
Le symbole CR
est requis après la dernière ligne de votre fichier /etc/systemd/system/youunit.service
..__ Vérifiez-le et supprimez /etc/systemd/system/multi-user.target.wants/youunit.service
. Réessayez ensuite systemctl enable youunit
.