如何从终端启动 GUI 程序,但在启动后关闭终端?

如何从终端启动 GUI 程序,但在启动后关闭终端?

我喜欢从终端启动 GUI 程序,例如emacs myfile.txt.但是这样做会使终端窗口与该进程一起打开,所以现在有两个窗口可供我跟踪。如果我关闭终端窗口,GUI 程序就会关闭。

我知道我可以运行exec cmdcmd我尝试运行的命令在哪里,然后关闭终端窗口程序完成。但我想在命令执行后关闭终端窗口推出。有没有办法做到这一点?

答案1

您可以将此函数附加到您的~/.bashrc

openclose() {
    "$@" &
    disown
    exit
}

通过打开新终端(或source ~/.bashrc)并发出测试它

openclose emacs myfile.txt
  • "$@" &在后台运行该命令。
  • disown从 shell 中删除后台进程(参见help disownman bash,信号部分),因此当 shell 关闭时,进程仍然存在。
  • exit退出外壳程序。

相关内容