![전송되는 파일이 없을 때만 삼바를 다시 시작하려면 어떻게 해야 합니까?](https://rvso.com/image/154491/%EC%A0%84%EC%86%A1%EB%90%98%EB%8A%94%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%97%86%EC%9D%84%20%EB%95%8C%EB%A7%8C%20%EC%82%BC%EB%B0%94%EB%A5%BC%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
나는 이것을 할 방법을 찾으려고 노력하고 있습니다. 지금은 "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
하위 프로세스가 실행 중인 동안에도 상위 프로세스를 다시 시작하는 데 아무런 문제가 없었습니다 .)