linux - 将 SIGINT 转换为 SIGHUP 的脚本包装器

标签 linux shell signals

我使用 Leiningen REPL,它使用 SIGINT 来中断当前正在运行的代码并输出新提示。可以使用 SIGHUP 或 SIGKILL 停止 REPL。我实际上并没有在 REPL 中运行任何东西——我只是将它用于一些预定义的副作用。

问题是 IntelliJ IDEA 只能在它退出时发送 SIGINT 给它已经启动的进程。因此,如果我忘记终止从 IDEA 启动的 REPL,就会有一个我必须手动终止的闲置进程。

是否可以编写启动 REPL 的 shell 脚本,为其提供一些虚拟标准输入/标准输出(否则,REPL 立即退出),并等待进程结束,同时转发所有信号,将 SIGINT 转换为 SIGHUP还是 SIGKILL?

最佳答案

打开一个终端窗口并在其中启动 REPL。当您关闭终端窗口或按下 Ctrl+D(在 Windows 上为 Ctrl+Z)时,进程将终止。

然后您可以缩小终端窗口,这样就不会烦人了。

关于linux - 将 SIGINT 转换为 SIGHUP 的脚本包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47532921/

相关文章:

c - 中止系统调用行为

linux - 如何在Linux中格式化特定大小的文件系统

python - 如何编写信号安全的 Python 代码?

linux - 我上次 Linux 期中考试的 PATH 问题,我需要有人解释一下

linux - 如何在 shell 脚本中使用 getopt 获取多个参数

linux - 如何为输出添加行号,提示行,然后根据输入进行操作?

ruby - 如何包含使用 FileUtils#sh 执行命令的管道?

c - 减少 C 中每个 kill() 函数之间的时间

有人可以协助解释具有术语 'stack smash' 的回溯输出吗?

c - 从输入事件中读取条形码(Linux,C)