我使用 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/