表 1. 特殊実行可能接頭部

表 1. 特殊実行可能接頭部

私のArchlinuxシステムでは、ファイル /usr/lib/systemd/system/mdmonitor.serviceには次の行が含まれています。

[Service]
Environment=  MDADM_MONITOR_ARGS=--scan
EnvironmentFile=-/run/sysconfig/mdadm
ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh
ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS

=-私はこれが指定されたファイルが存在しない場合、サービスが失敗してはならないことを意味すると(一部のインターネット検索で確認)疑います。ただし、systemdユニットファイルのマンページにはこの動作がありません。課題の公式文書はどこにありますか=-

答え1

この内容は次のように記録されます。systemd.exec:

EnvironmentFile=

[...]

渡される引数は絶対ファイル名であるか、またはオプションで-接頭辞 ""が付くワイルドカード式でなければなりません。つまり、ファイルがないとファイルを読み取ることができず、エラーや警告メッセージは記録されません。

そしてsystemd.service:

ExecStart=

指定された各コマンドの最初の引数は、実行可能ファイルの絶対パスでなければなりません。あるいは、ファイル名の前に特殊文字を付けることもできます。

表 1. 特殊実行可能接頭部

ExecStartPre=ExecStartPost=

プレフィックスなしでこれらのコマンドの-いずれかが失敗すると、残りのコマンドは実行されず、デバイスは失敗したと見なされます。

(systemdディレクティブの最も完全なドキュメントについては、以下を参照してください。systemd.directives.)

答え2

しかもこんなラインも

以降=-.マウント

別の「同じマイナス」構文のように見えますが、これは特別なAfter=システムデバイス-.mount(ルートマウントポイントなど)を一覧表示するコマンドです。文書:https://www.freedesktop.org/software/systemd/man/systemd.special.html#-.mount

関連情報