2 votes

Erreur de documentation du fichier d'unité SystemD

Je veux créer un fichier SystemD Unit, et utiliser l'option de documentation pour faire référence à un fichier texte que j'ai créé. Cependant, chaque fois que j'utilise l'option systemctl help test1.service (en tant que root), j'obtiens une erreur. Pour illustrer ce problème, j'ai fait un exemple :

Voici le script que je vais activer dans une unité SystemD à des fins de test :

[centos@localhost ~]$ cat ~/test.sh
#!/bin/sh
echo "hello"

Voici le fichier de documentation auquel je ferai référence dans l'unité SystemD :

[centos@localhost ~]$ cat ~/test.txt

this is a piece of test documentation

Voici le fichier de l'unité System D :

[centos@localhost ~]$ cat /etc/systemd/system/test1.service 

[Unit]
Description=Test
Documentation=file://localhost/home/centos/test.txt

[Service]
ExecStart=/home/centos/test.sh

[Install]
WantedBy=multi-user.target

Maintenant pour activer mon fichier d'unité, et essayer de voir la documentation associée à cette unité :

[centos@localhost ~]$ sudo systemctl daemon-reload 
[centos@localhost ~]$ sudo systemctl restart test1.service 
[centos@localhost ~]$ sudo systemctl status test1.service 
 test1.service - Test
   Loaded: loaded (/etc/systemd/system/test1.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Sun 2019-02-17 18:37:13 GMT; 6s ago
     Docs: file://localhost/home/centos/test.txt
  Process: 16036 ExecStart=/home/centos/test.sh (code=exited, status=0/SUCCESS)
 Main PID: 16036 (code=exited, status=0/SUCCESS)

Feb 17 18:37:13 localhost.localdomain systemd[1]: Started Test.
Feb 17 18:37:13 localhost.localdomain test.sh[16036]: hello

Voici le problème :

[centos@localhost ~]$ systemctl help test1.service 
Can't show: file://localhost/home/centos/test.txt

J'ai d'abord pensé qu'il s'agissait d'une convention de nom pour file . Mais après avoir lu la documentation, je devrais être en mesure d'utiliser (et j'ai testé) ces trois formats (en redémarrant à chaque fois l'application systemd et redémarrer le service) :

file://localhost/home/centos/test.txt
file:///home/centos/test.txt
file:/home/centos/test.txt

Mais à chaque fois, j'obtiens la même erreur lorsque j'essaie d'afficher la documentation de mon unité avec l'option systemd commande d'aide. Pourquoi ?

1voto

Dennis Wurster Points 234

La mise en œuvre de systemctl help c'est en gros "si c'est une uri homme montrez-la, sinon dites que vous ne pouvez pas la montrer" :

        STRV_FOREACH(p, i->documentation)
                if (startswith(*p, "man:"))
                        show_man_page(*p + 4, false);
                else
                        log_info("Can't show: %s", *p);

(de https://github.com/systemd/systemd/blob/master/src/systemctl/systemctl.c#L4643 )

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X