python怎么退出|终端敲对应快捷键和指令结束程序运行
上周蹲在电脑前捣鼓代码,反复卡在python怎么退出这件小事上,连着耗了小半钟头,手边的凉水放凉都忘了碰。最开始傻乎乎的点窗口右上角叉号,看似关掉了运行页面,后台进程却还在占用内存,后续新开解释器总会弹出资源被占用的弹窗,折腾几回才察觉这种关闭方式藏着隐性麻烦,日常临时终止程序完全不推荐这么操作,尤其在服务器远程调用的环境里,盲目关窗口还会打乱正在挂载的项目链路,连带之前写好的部分缓存数据凭空丢失,白白浪费之前调试的功夫,反正那段时间总以为关闭窗口就等于结束运行,忽略了系统后台留存进程的特性。
乱点关闭,是初学最容易踩的误区。
早前跟着身边一同入门编程的熟人实操,那人习惯性在交互式命令行里胡乱输入字符试错,碰到跑死的脚本就随手敲空格回车,指望系统自动跳出退出页面,在连续几十次无效敲击之后,整个解释器直接陷入卡死的状态,光标停在原地一动不动,桌面别的软件跟着出现卡顿掉帧,后来盯着屏幕发呆的时候才留意,交互式python环境自带专属退出指令,只是之前没人提点,两个人全都凭着自我臆想瞎摸索,白白耗费了一个傍晚的空闲时间,那阵子总觉得明明很小的操作,偏偏要绕无数弯路才能摸到门路,心里憋着说不清的烦闷,又懒得去翻厚重的参考文档,就这么拖着反复试错,试过输入quit、退出、关掉软件重开等五花八门的法子,大半操作不仅没用,还让本地的运行环境时不时出现配置错乱,差不多连着三四天都要重复修复环境参数。
后来才反应过来,交互式环境里敲exit()括号不能漏掉,少了括号系统只会判定成变量名称,没办法执行退出逻辑,试过只打exit不带括号,屏幕反复抛出名称未定义的报错,弹窗跳个不停。
换了cmd黑框启动的python程序,又撞见新状况。程序陷入死循环之后,键盘敲exit完全没反应,输入各类字符全部被循环代码吞噬,屏幕不停滚动重复的输出内容,视线盯久了眼睛发酸,一开始想着等待程序自己跑完结束,等了十几分钟输出还在不间断刷新,才放弃被动等候的想法,在各个按键上挨个试按,碰错好几个系统快捷键,调出一堆无关的系统弹窗。
ctrl加C,是卡死程序的应急法子。
在linux的远程终端里又是另一套规则,之前远程连上云服务器运行py文件,死循环触发后ctrl+C失效,翻找零碎的资料才晓得,这个环境要用ctrl+D来退出交互式解释器,若是后台挂载运行的脚本,快捷键起不到半点作用,得切到进程列表用kill指令终止进程,那回因为分不清两种场景的操作区别,误杀掉别的正在运行的服务,导致小型测试项目直接中断,返工修补数据花掉整整一下午,事后对着代码叹气,明明只是退出操作,细分场景之后复杂度直接拉高,就是很容易混淆不同系统下的操作逻辑,那个阶段总在windows和linux两种系统来回切换,记混指令变成常态。
还有一种情况,代码里嵌入循环休眠,普通快捷键中断之后偶尔会残留子进程,没办法彻底清空运行占用,试过关闭终端页面再重新登入,算是能绕开残留进程的麻烦,只是每次这么操作都要重新导入环境变量,步骤繁琐又耗时间,找不到更轻便的折中方案,索性日常测试时尽量提前在代码里预留终止判断语句,从源头减少强行退出的频次,慢慢也就很少再碰到进退两难的运行僵局。
当晚收拾桌面的时候,随手把记了快捷键的便签夹在笔记本夹缝里,之后再也没特意翻看。