一旦python脚本从终端停止(Ctrl-C),如何释放Ubuntu内存?

一旦python脚本从终端停止(Ctrl-C),如何释放Ubuntu内存?,python,linux,python-2.7,ubuntu,memory-management,Python,Linux,Python 2.7,Ubuntu,Memory Management,我使用命令从控制台(Ubuntu 14.04)调用python脚本(2.7):python script_name.py。在某个时候,我想通过按Ctrl-C来停止运行的脚本。但是,当我检查Ubuntu System Monitor时,python脚本使用的内存没有释放(我在调用脚本之前、在调用过程中以及在按下Ctrl-C停止脚本之后都监视了Ubuntu System Monitor)。我尝试使用上解释的命令释放内存,但没有成功(我的意思是,内存使用没有改变) 但是,如果我使用pycharm运行并

我使用命令从控制台(Ubuntu 14.04)调用python脚本(2.7):python script_name.py。在某个时候,我想通过按Ctrl-C来停止运行的脚本。但是,当我检查Ubuntu System Monitor时,python脚本使用的内存没有释放(我在调用脚本之前、在调用过程中以及在按下Ctrl-C停止脚本之后都监视了Ubuntu System Monitor)。我尝试使用上解释的命令释放内存,但没有成功(我的意思是,内存使用没有改变)

但是,如果我使用pycharm运行并停止脚本,那么一旦按下停止按钮,内存就会被直接释放。出于某些原因(例如从ssh或只是从控制台测试),我希望从控制台运行脚本(不使用pycharm或任何其他IDE)

我的问题是,如果我从控制台运行脚本,命令是什么,或者如何停止运行python脚本并直接释放脚本使用的内存


非常感谢。

这些命令不起作用,因为您试图实现的不是它们的功能。如何检查Python脚本使用的内存。我使用
top
查看内存,每个进程都可以使用它(默认情况下按升序排序)。在系统有时间注册python进程被终止之前,您可能已经检查过了,我已经使用过很多次了,而且我从来没有尝试过在进程被
ctrl+c
终止后,操作系统不收回内存


Pycharm可能是在停止程序时进行一些清理,而不是仅仅等待操作系统回收内存,而不是在从shell中调用进程时进行清理。这些命令不起作用,因为您试图实现的不是它们所做的。如何检查Python脚本使用的内存。我使用
top
查看内存,每个进程都可以使用它(默认情况下按升序排序)。在系统有时间注册python进程被终止之前,您可能已经检查过了,我已经使用过很多次了,而且我从来没有尝试过在进程被
ctrl+c
终止后,操作系统不收回内存


当你停止程序时,Pycharm可能在做一些清理工作,而不是仅仅等待操作系统回收内存,而当你从一个shell中调用一个进程时,Pycharm可能在做一些清理工作。

我使用了Ubuntu系统监视器(在“内存和交换历史”中的“内存”下)。我可以看到在运行脚本时使用了(增加了)内存量(这是正常的),但在终端中使用Ctrl-C之后,“内存量”仍然存在。如果我使用Pycharm,在按下停止按钮后,“内存量”将被释放。我使用了“top”,进程被终止,但系统监视器仍然显示“内存量”没有增加。从未使用过系统监视器。你试过多少次了?如果您只是查看内存的总使用量,那么有可能另一个进程在Python释放内存时就立即中断了该内存(这需要很大的巧合)。如果是每个进程,那么它可能会在那里停留一段时间,直到内存返回操作系统的可用内存池。好吧,操作系统似乎不会释放内存,即使脚本已经停止了一段时间。我只运行我的脚本(没有其他应用程序在运行),而且我的脚本需要一个大内存,因此每次我都必须重新启动linux(这是我不喜欢/不能做的事情)以恢复内存,然后才能重新运行我的脚本。终端是否有命令释放python脚本使用的内存(显然我帖子中链接的命令不起作用)?好的,我根据@arsh chauhan的答案找到了解决方案。我使用
top
,然后使用
kill-15pid
(SIGTERM)。现在我可以在不重新启动Ubuntu的情况下释放内存:-)谢谢!我使用了Ubuntu系统监视器(在“内存和交换历史”中的“内存”下)。我可以看到在运行脚本时使用了(增加了)内存量(这是正常的),但在终端中使用Ctrl-C之后,“内存量”仍然存在。如果我使用Pycharm,在按下停止按钮后,“内存量”将被释放。我使用了“top”,进程被终止,但系统监视器仍然显示“内存量”没有增加。从未使用过系统监视器。你试过多少次了?如果您只是查看内存的总使用量,那么有可能另一个进程在Python释放内存时就立即中断了该内存(这需要很大的巧合)。如果是每个进程,那么它可能会在那里停留一段时间,直到内存返回操作系统的可用内存池。好吧,操作系统似乎不会释放内存,即使脚本已经停止了一段时间。我只运行我的脚本(没有其他应用程序在运行),而且我的脚本需要一个大内存,因此每次我都必须重新启动linux(这是我不喜欢/不能做的事情)以恢复内存,然后才能重新运行我的脚本。终端是否有命令释放python脚本使用的内存(显然我帖子中链接的命令不起作用)?好的,我根据@arsh chauhan的答案找到了解决方案。我使用
top
,然后使用
kill-15pid
(SIGTERM)。现在我可以在不重新启动Ubuntu的情况下释放内存:-)谢谢!Python是用C编写的。如果解释器仍在运行,那么这可能是相关的:PyCharm的架构可能有点不同,可能会生成一个自身副本来运行最终退出的脚本。谢谢,但我正在寻找Unix/Linux命令来终止进程并直接释放内存。但是你的输入也很有趣!非常感谢。哪个过程?你还没有详细说明。答案可能在或中有详细说明。另请参见。在某个地方有一篇更好的帖子讨论内核中的一个潜在bug,内核在这个bug中传递了t