전송되는 파일이 없을 때만 삼바를 다시 시작하려면 어떻게 해야 합니까?

전송되는 파일이 없을 때만 삼바를 다시 시작하려면 어떻게 해야 합니까?

나는 이것을 할 방법을 찾으려고 노력하고 있습니다. 지금은 "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하위 프로세스가 실행 중인 동안에도 상위 프로세스를 다시 시작하는 데 아무런 문제가 없었습니다 .)

관련 정보