web-dev-qa-db-ja.com

System-VタイプのinitスクリプトLSBヘッダーの「Required-Stop:」行

特定のディレクトリ内のファイルを監視するデーモンを作成しました。新しいファイルがこのディレクトリにコピーされると、SVNにコミットされます。リモートデバイスがscpを介してファイルをコピーした場合にのみ、新しいファイルがこのディレクトリに表示されます。ここで、OpenSUSE11.4でこのデーモンのSystem-Vinitスクリプトを作成したいと思います。 Required-Start:行には$sshdブート機能のみを含める必要があることは明らかです。これにより、ローカルファイルシステムがマウントされ、ネットワークが動作し、sshdが開始されます。これらの3つのブート機能はデーモンの前提条件です。つまり、sshdが動作していない場合、デーモンを起動する意味がないため、scpを介して新しいファイルを受信することはできません。ただし、Required-Stop:行を構成する方法に少し戸惑っています。この行には、シャットダウンする前に停止する必要のあるブート機能がリストされています[〜#〜] not [〜#〜]デーモン。デーモンが停止する前にsshdが停止している間(新しいファイルを受信しないため)、ローカルファイルシステムをマウントしてネットワークを操作可能(SVNにファイルをアップロードするため)にするのは論理的に思えます。 Required-Stop: $sshdは、scpが停止する前に、sshdを介して新しいファイルを受信して​​いるときにデーモンが停止する状況を作り出す可能性があります。

つまり、一言で言えば、次のアプローチが私にとって最も論理的であるように思われます。

# Required-Start: $sshd
# Required-Stop: $local_fs $network

私は正しいですか?

1
Martin

Required-Stopのセクションの https://wiki.debian.org/LSBInitScripts によると

通常、ここにはRequired-Startキーワードと同じ機能を含めます。

sshが開始する前にこのスクリプトを実行しても、OPで提案したような問題はありません。これは、このデーモンがsshが開始するまで表示されないファイルを待機することを意味します。ただし、このスクリプトには必ず$local_fs$networkの機能が必要なので、次の2行を使用します。

# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
3
David King