如何防止控制台窗口被“暂停”?
如何防止控制台窗口被“暂停”?
我之前也踩过这个坑——误按Pause/Break把本地Web服务器给暂停了,结果curl连上去直接无限挂起,连个超时错误都没有,贼闹心!分享几个亲测有用的解决办法:
全局禁用Pause/Break的暂停功能(一劳永逸)
这个方法能让所有控制台窗口都无视Pause/Break键,操作步骤很简单:- 按下Win+R组合键,输入
regedit打开注册表编辑器 - 顺着路径找到
HKEY_CURRENT_USER\Console - 在右侧空白处右键,选择“新建”→“DWORD(32位)值”,命名为
DisablePause - 双击这个新值,把数值数据改成1(基数选十进制就行)
- 关掉所有已打开的控制台窗口再重启,之后按Pause/Break就不会触发暂停了
- 按下Win+R组合键,输入
给curl加超时参数,避免无限挂起(临时救急)
如果你暂时不想改系统设置,可以先给curl命令加上超时限制,哪怕服务器被暂停,curl到点也会自动退出:
比如执行curl --connect-timeout 5 --max-time 10 http://localhost:8080
其中--connect-timeout限定了连接服务器的最长等待时间(单位秒),--max-time是整个请求的总超时时间,到时间curl就会返回错误码,方便你处理脚本的errorlevel给服务器加状态提示,一眼看出是否暂停
要是你还想保留Pause/Break的功能,但希望能快速识别服务器状态,可以写个简单的启动批处理:@echo off title Web Server - 运行中 :: 把下面这行换成你的实际服务器启动命令,比如python -m http.server或者node app.js node server.js :loop title Web Server - 已暂停! timeout /t 1 /nobreak >nul goto loop原理是当服务器被暂停时,后面的循环会启动,把窗口标题改成“已暂停!”,这样你扫一眼控制台标题就知道出问题了,缺点是暂停状态下会占用一点点CPU,但胜在直观
备注:内容来源于stack exchange,提问作者Nelson
相关产品推荐
相关产品推荐

