2つの質問があります。
Systemctlスクリプトでの@記号の意味は何ですか?
Fedora 16でvsftpdを開始する方法(チュートリアルによっては、名前に@が含まれているようです)?チュートリアルに書かれていることはすべて実行しましたが、それでもエラーが発生します。 http://blog.tuxforge.com/Fedora-16-vsftpd/
私がやったこと
systemctl enable [email protected]
私が見るもの
Failed to issue method call: No such file or directory
(私はこれも絶対パスで試してみましたが、確認したところ、そのようなファイルはありません。実際のファイルには@記号が含まれておらず、/ lib/systemd/system /ディレクトリの下にあります。また、 @記号の有無にかかわらず、開始と有効化、有効化は機能しますが、開始は機能しません。記事は現在廃止されていると思いますが、それでもサービスを開始できないようです。接続しないでください)
編集:なんらかの方法でサービスを開始しましたが、一部のサービス名で@記号が何を意味するのかを知りたいです。また、ログインエラー番号#500がディレクトリ[...]を変更できません。これはどういう意味ですか?
それを始めるために私はちょうどタイプした
Sudo systemctl enable vsftpd.service
Sudo systemctl start vsftpd.service (the problem was I was using an absolute path for this I think)
@
シンボルは、複数のインスタンスを実行できる特別なサービス、ソケット、およびその他のユニット用です。
たとえば、[email protected]
は、テキストログイン端末を提供するサービスです。押すと Ctrl+Alt+F2、[email protected]
が開始され、仮想端末#2が作成されます。
この機能を使用する別のサービスはOpenVPNです。職場でVPNに接続するように構成されたファイル/etc/openvpn/work.conf
を作成し、次にsystemctl start [email protected]
に接続するように構成できます。同様に、自宅にVPNがある場合は、/etc/openvpn/home.conf
を作成し、次に[email protected]
を開始できます。これにより、接続するVPNごとに.service
ファイルを作成する必要がなくなります。
しかし、私の言葉をそれに取ってはいけません。やってみよう!メッセージをsyslogに出力する簡単なサービスを作成してみましょう。次の内容のファイル/etc/systemd/system/[email protected]
を作成します。
[Unit]
Description=Echo '%I'
[Service]
Type=oneshot
ExecStart=/bin/echo %i
StandardOutput=syslog
%i
? systemdは、サービスが開始されたときに、@
記号に続くものをそこに入力します。したがって、[email protected]
を開始してみてください。
systemctl start [email protected]
次に、 journal を確認します。
journalctl -n10
下部に、systemdが/bin/echo foo
を実行したことが表示されます。
Feb 24 12:41:01 localhost echo[8412]: foo
では、systemctl start [email protected]
をお試しください。今回は、systemdが%i
にbar
を入力するため、次のように表示されます。
Feb 24 12:42:51 localhost echo[8432]: bar
これですべてです! systemdがサービス定義の@
をそれで置き換えるだけなので、何かが%i
記号に続く可能性があります。 OpenVPNはそれを構成に使用しますが、他のサービスはポート番号のような他の何かに使用するかもしれません。
詳細については、 man systemd.unit
を参照してください。