Net::SFTP
으로 시작하려하지만 해당 설명서 또는 Net::SSH::Perl
에 대한 설명서에서 로그 아웃하는 방법을 찾을 수 없습니다. SFTP 서버.Net :: SFTP를 사용하여 로그 아웃하는 방법
무엇이 누락 되었습니까?
가비지 컨트롤로 로그 아웃을 처리합니까?
Net::SFTP
으로 시작하려하지만 해당 설명서 또는 Net::SSH::Perl
에 대한 설명서에서 로그 아웃하는 방법을 찾을 수 없습니다. SFTP 서버.Net :: SFTP를 사용하여 로그 아웃하는 방법
무엇이 누락 되었습니까?
가비지 컨트롤로 로그 아웃을 처리합니까?
수 없습니다.
Net::SFTP과 Net :: SSH :: Perl의 소스 코드를 살펴 보았습니다. 어느 쪽도 메소드가 DESTROY
이 아니므로 명시적인 정리가 수행되지 않습니다. disconnect
또는 quit
또는 이와 유사한 것도 없습니다.
Net :: SSH :: Perl은 sub _disconnect
which is empty입니다. called by sub fatal_disconnect
입니다. fatal_disconnect
is used에 의해 SFTP 요청이 실패한 경우 Net :: SFTP. 하지만 그게 전부입니다. 다른 건 없어.
범위에서 벗어나면 개체가 Perl에 의해 정리됩니다.
{
my $sftp = Net::SFTP->connect; # example
# do stuff...
}
# here it has been cleaned up and DESTROY was called on it
하지만 코드가 없으므로 아무 것도 발생하지 않습니다. SSH에서 로그 아웃하라는 코드를 찾을 수 없습니다. 어쩌면 그냥 시간을 초과 할 수 있습니다. 우리는 서버 로그를보고 무슨 일이 일어나는지 알아봐야 할 것입니다.
네, 여기와 같습니다. 찾아 주셔서 고맙다, 나는이 기초가 간과 될 것 인 무엇인가 믿을 수 없었다. 따라서 프로그램의 수명에 따라 서버에서 연결 시간을 초과하거나 프로그램이 종료되고 Unix가 자원을 해제 할 때 연결이 닫힐 수 있습니다. 서버가 연결을 시간 초과하면 일부 리소스가 여전히 클라이언트 쪽 (소켓의 클라이언트 쪽)에 보관된다고 생각합니다. 따라서 오래 동안 살았던 프로그램은 제대로 연결되지 않았기 때문에 많은 연결을 할 수 있고 결국 시스템을 굶어 죽을 수 있습니다. – theglauber
합리적이라고 들리지만, SSH에 관해서는 아무 말도하지 못합니다. – simbabque
@ 보 로딘, 편집 해 주셔서 감사합니다. – theglauber
대부분의 사람들은 게시물에 부모의 태도를 취하고 나를 만지기까지 저주합니다! – Borodin