linux terminator:在启动时配置命令,并在命令结束时不关闭终端

linux terminator:在启动时配置命令,并在命令结束时不关闭终端

我正在使用 Linux 的 Terminator,并且已将~/.config/terminator/config文件配置为从特定文件夹启动并运行某些命令

我在末尾添加了一个; bash(也尝试使用; bash && bash || bash),以防止命令结束时终端窗口关闭

其中有些,使用pnpm(节点)运行的,按预期工作,但其他人只是在我打开它时关闭终端ctrl-C,尽管; bash

这些工作正常:

    [[[terminal7]]]
      type = Terminal
      ...
      directory = /home/.../app
      command = "pnpm dev:localhost; bash"
    [[[terminal8]]]
      type = Terminal
      ...
      directory = /home/.../billing
      command = "pnpm dev:localhost; bash"

这些没有

    [[[terminal3]]]
      type = Terminal
      ...
      directory = /home/.../backend
      command = "make teardown && make setup; bash"
    [[[terminal4]]]
      type = Terminal
      ...
      directory = /home/.../backend
      command = "sleep 3 && cargo xtask run --config resources/configuration/dev-opensas.yaml; bash && bash || bash"

知道可能是什么问题吗?

答案1

虽然通常情况下,当 bash 的非交互式副本接收到通过 ctrl+c 发送的 SIGINT 信号时就会退出,但是您可以使用以下trap命令来防止这种情况:

command = "trap : SIGINT; make teardown && make setup; trap - SIGINT; exec bash"

上面使用的命令是(通常用作 noop 时使用):的同义词。因此,我们告诉父 shell 在运行时有效地忽略 SIGINT ,然后在运行以用新副本替换 bash 的非交互式副本(该副本观察到自己已连接到 TTY,应默认将自己配置为交互式)之前将该信号的处理恢复为默认值。truemake teardown && make setupexec bash

相关内容