web-dev-qa-db-fra.com

Le symbole @ et systemctl et vsftpd

J'ai une question de deux parties.

  1. Quelle est la signification du symbole @ dans les scripts SystemCTL?

  2. Comment démarrer VSFTPD dans Fedora 16 (qui, dans certains tutoriels, semble contenir un nom de @ dans son nom)? J'ai fait tout ce que les tutoriels disent, et cela me donne toujours une erreur. http://blog.tuxforge.com/fedora-16-vsftpd/

Ce que j'ai fait

systemctl enable [email protected]

Ce que je vois

Failed to issue method call: No such file or directory

(J'ai essayé cela avec un chemin absolu aussi bien, et après que je vérifiais, il n'y a pas de fichier de ce type. Le fichier réel ne contient pas de signe @ et se trouve sous le répertoire/lib/systemd/system/system. J'ai aussi essayé démarrage et activation avec et sans le symbole @, activation des travaux, mais ne commence pas. Je me rends compte que l'article est maintenant obsolète, mais je ne peux toujours pas sembler commencer le service. Quand j'essaie de commencer Connectez-vous ne me laisse pas)

Edit: J'ai le service pour commencer d'une manière ou d'une autre, mais j'aimerais toujours savoir ce que signifie le symbole @ dans certains noms de service. De plus, je reçois toujours un numéro d'erreur de connexion n ° 500 Impossible de modifier le répertoire [...], qu'est-ce que cela signifie?

Pour commencer, je viens de taper

Sudo systemctl enable vsftpd.service

Sudo systemctl start vsftpd.service (the problem was I was using an absolute path for this I think)
29
rubixibuc

Le @ Symbole concerne des services spéciaux, des sockets et d'autres unités où plusieurs instances peuvent être exécutées.

Par exemple, [email protected] est le service qui fournit des terminaux de connexion texte. Quand vous appuyez sur Ctrl+Alt+F2, [email protected] est démarré, créant un terminal virtuel n ° 2.

Un autre service utilisant cette fonctionnalité est openvpn. Vous pouvez créer un fichier /etc/openvpn/work.conf, configuré pour se connecter au VPN sur votre lieu de travail, puis systemctl start [email protected] Pour vous connecter. De même, vous pourriez créer /etc/openvpn/home.conf, Puis commencez [email protected] Si vous aviez un VPN à la maison. Cela vous empêche de devoir créer un .service Fichier pour chaque VPN que vous vous connectez.

Mais ne prenez pas ma parole pour cela. Essaye le! Créons un service simple qui génère un message à Syslog. Créer un fichier /etc/systemd/system/[email protected] avec le contenu suivant:

[Unit]
Description=Echo '%I'

[Service]
Type=oneshot
ExecStart=/bin/echo %i
StandardOutput=syslog

Notez le %i? SystemD remplacera qu'avec tout ce qui suit le @ signe lorsque le service est démarré. Alors, essayez de commencer [email protected]:

systemctl start [email protected]

Ensuite, vérifiez le Journal :

 journalctl -n10

Au fond, vous verrez que SystemD a couru /bin/echo foo:

Feb 24 12:41:01 localhost echo[8412]: foo

Essayez maintenant systemctl start [email protected]. Cette fois, Systemd va peupler %i avec bar, vous verrez donc:

Feb 24 12:42:51 localhost echo[8432]: bar

C'est tout ce qu'on peut en dire! Tout pourrait potentiellement suivre le @ signe, comme SystemD remplace simplement %i Dans la définition de service avec elle. OpenVPN l'utilise pour la configuration, d'autres services pourraient utiliser pour autre chose, comme un numéro de port.

Pour plus d'informations, voir man systemd.unit .

52
Patches