You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ctrl+Z结束输入时出现Suppressing signal 18报错的问题咨询

解决Ctrl+Z输入结束时的信号提示问题

Hey there! Let's break down what's happening with your test.py script and that confusing signal message.

先搞懂那个提示到底是什么

你看到的4 [sig] bash 11516! sigpacket::process: Suppressing signal 18 to win32 process (pid 10620)并不是代码错误,而是类Unix shell(比如你用的Git Bash或WSL)在协调Windows与Unix信号机制时的日志信息。信号18是SIGCONT,当你按下Ctrl+Z时,shell默认会发送SIGTSTP信号挂起进程,系统为了避免Windows端进程被意外中断,就会输出这条提示。

你的代码完全没问题!

先给你吃个定心丸:你写的test.py功能逻辑是正常的,它就是读取标准输入的全部内容然后输出:

import sys
res = sys.stdin.read()
print(res)

正确结束输入的方式(避免提示)

在类Unix shell环境下,发送EOF(结束输入)的标准快捷键是Ctrl+D,而不是Ctrl+Z。你可以按这个步骤操作:

  1. 运行python test.py
  2. 输入hello
  3. 按下Ctrl+D

这样脚本会正常读取输入并输出hello,不会再出现那串信号提示。

为什么Ctrl+Z会触发这个提示?

在Windows原生命令行(cmd)里,Ctrl+Z确实是用来发送EOF的,但在bash这类类Unix环境中,Ctrl+Z的默认功能是挂起当前运行的进程,而非结束输入。这就是两种环境的操作差异导致的提示。

(可选)如果坚持想用Ctrl+Z发送EOF

如果你实在习惯用Ctrl+Z,可以修改bash配置来改它的行为:

  1. 打开~/.bashrc文件
  2. 添加一行:stty eof ^Z
  3. 保存后运行source ~/.bashrc使配置生效

不过要注意,这样会覆盖Ctrl+Z原本的“挂起进程”功能,可能影响你其他shell操作,所以更推荐用标准的Ctrl+D。

内容的提问来源于stack exchange,提问作者Vinh Hoang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:53:17