私はこれを行う方法を見つけようとしています。現在は、「smbstatus」を実行してSambaをリセットするだけを許可するスクリプトがありますが、それほど安定していません(Windowsクライアントが共有をマッピングすると、ロックされたファイルは表示され、ファイルアクティビティは表示されません)。
Sambaがファイルを転送するタイミングを検出する方法はありますか?
注:クライアントマッピングではなくアクティブファイル転送のみ可能
編集:これは私のスクリプトの外観です
until sudo smbstatus | grep "No locked files"
do
echo "Processes Running..."
sleep 5
echo ""
done
sudo service smbd restart
echo "Restarted SMB"
ベストアンサー1
この設定を使用して、活発に使用されていないサブプロセスをdeadtime
終了できます。smbd
10分間アイドル状態の後に子プロセスを終了する例:
deadtime = 10
文書には何よりも次のように記載されています。
デッドタイムは、開かれたファイル数が0の場合にのみ適用されます。
ほとんどのクライアントには接続が切断されると自動的に再接続する機能があるため、ほとんどの場合、このパラメータはユーザーに透過的である必要があります。
ほとんどのシステムでは、このパラメータを使用して数分のタイムアウトを設定することをお勧めします。
このシナリオでは、子プロセスの数を計算し、親プロセスだけが残っているときにリセットを実行できます。 (運は良いかもしれませんが、最近はsmbd
子プロセスがまだ実行されていても親プロセスを再開するのに問題はありませんでした。)