当使用命令行在 GUI 应用程序中打开多个选项卡时,通常第一个命令会阻塞(等到应用程序关闭),但后续命令会立即返回(应用程序仍在运行时)。这是如何工作的?
我在使用 bash 在文本编辑器中打开不同的连续文件时(使用 或 等命令)或类似地在使用 Web 浏览器时(使用 )注意到了这一点gedit file3.txt
。spyder file7.txt
我xdg-open file2.html
假设后续命令以某种方式传递给现有进程,而不是产生其他进程?
通常,如果我想编辑多个文件,我可能会通过在后台显式运行第一次调用(使用&
或bg
)来解决此行为,然后在前台运行每个后续调用,并避免关闭并重新打开应用程序。我如何控制我自己的(或其他人)应用程序是否以这种方式运行?
答案1
当您启动时gedit
,它首先检查是否gedit
已在运行。如果没有,它将继续打开文件。否则,它会向旧进程发出信号,在新选项卡中打开文件并退出。