我使用python-flask创建了一个基本的Web应用程序。用户可以上传文件进行某些分析,某些功能可以在后端运行。当作业完成时,包含结果的文件会自动发送给用户。但是如果进程运行这么久,并且用户试图停止操作,python函数仍然可以在后端运行。我必须停止整个Web应用程序并重新运行它以终止python进程。
当我运行Web应用程序时,这些是端口5000上的进程。
$ lsof -i:5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 5306 akinyilmaz 6u IPv4 104621 0t0 TCP *:5000 (LISTEN)
python 5309 akinyilmaz 6u IPv4 104621 0t0 TCP *:5000 (LISTEN)
python 5309 akinyilmaz 8u IPv4 104621 0t0 TCP *:5000 (LISTEN)
当客户端上传文件并开始分析时,我会得到以下内容。
$ lsof -i:5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox 4276 akinyilmaz 106u IPv4 145274 0t0 TCP akin_yilmaz.corp.airties.com:34274->akin_yilmaz.corp.airties.com:5000 (ESTABLISHED)
python 5306 akinyilmaz 6u IPv4 110021 0t0 TCP *:5000 (LISTEN)
python 5309 akinyilmaz 6u IPv4 110021 0t0 TCP *:5000 (LISTEN)
python 5309 akinyilmaz 8u IPv4 110021 0t0 TCP *:5000 (LISTEN)
python 5309 akinyilmaz 9u IPv4 146944 0t0 TCP akin_yilmaz.corp.airties.com:5000->akin_yilmaz.corp.airties.com:34274 (ESTABLISHED)
我试图获得PID
s并消除差异(在这种情况下为4276)但它实际上不起作用并且python函数没有停止。
我该怎么办才能杀死运行的python函数,而不是终止整个Web应用程序?