Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果我不';你不能关闭ssh会话吗?_Python_Session_Ssh_Sftp_Conceptual - Fatal编程技术网

Python 如果我不';你不能关闭ssh会话吗?

Python 如果我不';你不能关闭ssh会话吗?,python,session,ssh,sftp,conceptual,Python,Session,Ssh,Sftp,Conceptual,我是Python新手。目前我正在使用它通过ssh连接到远程服务器,做一些事情(包括复制文件),然后关闭会话 每次会话后,我都执行ssh.close()和sftp.close()。我这么做是因为这是我在互联网上找到的典型方式 我想知道如果我在没有结束会话的情况下完成脚本会发生什么。这会影响服务器吗这会在服务器上产生某种(甚至很少)负载吗?我的意思是我们为什么要这样做?当进程关闭时,(本地)操作系统会关闭进程打开的任何挂起的TCP/IP连接(即使它只是崩溃) 因此,SSH会话最终被关闭,即使您没有关

我是Python新手。目前我正在使用它通过ssh连接到远程服务器,做一些事情(包括复制文件),然后关闭会话

每次会话后,我都执行
ssh.close()
sftp.close()
。我这么做是因为这是我在互联网上找到的典型方式

我想知道如果我在没有结束会话的情况下完成脚本会发生什么。这会影响服务器吗这会在服务器上产生某种(甚至很少)负载吗?我的意思是我们为什么要这样做?

当进程关闭时,(本地)操作系统会关闭进程打开的任何挂起的TCP/IP连接(即使它只是崩溃)

因此,SSH会话最终被关闭,即使您没有关闭它。显然,它是突然关闭的,没有适当的SSH清理。因此,它可能会在服务器日志中触发一些警告

当进程长时间运行时,关闭会话尤其重要,但会话本身仅在短时间内使用


无论如何,不管发生什么情况,结束会话都是一个很好的做法

我们在使用后关闭会话,以便正确/轻松地完成清理(关闭与之相关的所有正在运行的进程)

当您
ssh.close()
时,它会生成一个
SIGHUP
信号。此信号自动/立即终止终端下的所有任务/进程

突然结束没有
关闭()的会话时,操作系统最终会知道连接已丢失/断开,会启动相同的
SIGHUP
信号,关闭大多数打开的进程/子进程

尽管如此,仍然存在一些可能的问题,如即使在
SIGHUP
之后,仍有少数进程继续运行
,因为它们是
nohup
选项开始的(或者以某种方式与当前会话分离)