特定のディレクトリ内のファイルを監視するデーモンを作成しました。新しいファイルがこのディレクトリにコピーされると、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
私は正しいですか?
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