방금 pyftpdlib로 시작했습니다. 먼저 수행 할 작업은 예제 서버를 스레드로 감싸는 것입니다. 하지만이 스크립트를 실행하면 스크립트가 종료되지 않습니다.pyftpdlib FTP 서버를 중지하려면 어떻게해야합니까?
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import logging
import threading
class FtpThread(threading.Thread):
def __init__(self, user_list):
self.user_list = user_list
self.killswitch = 0
threading.Thread.__init__(self)
def run(self,*args,**kwargs):
authorizer = DummyAuthorizer()
authorizer.add_user('user', 'bla', '/home/user/git/verteilerCore2/default_basedir/in/1/', perm='elradfmwM')
handler = FTPHandler
handler.authorizer = authorizer
logging.basicConfig(filename='/var/log/verteiler_ftp.log', level=logging.INFO)
handler.banner = "pyftpdlib based ftpd ready."
address = ('', 21)
self.server = FTPServer(address, handler)
self.server.max_cons = 256
self.server.max_cons_per_ip = 5
self.server.serve_forever()
def stop(self):
self.server.close_all()
def main():
ftp_server = FtpThread("")
ftp_server.start()
import time
time.sleep(1)
ftp_server.stop()
if __name__ == '__main__':
main()
server_forever를 중지하려면 어떻게해야합니까? 호출 "close_all는"봉사에서 서버를 중지하지만, 전체 스크립트는 :(
"서버가 서비스를 중지합니다"- 더 이상 요청을 받아들이지 않는다는 의미입니까? – User
예. 연결할 수는 없지만 스레드가 종료되지 않습니다 . – JasonTS