为什么某些应用程序若已在运行则返回,否则会阻塞?

为什么某些应用程序若已在运行则返回,否则会阻塞?

当使用命令行在 GUI 应用程序中打开多个选项卡时,通常第一个命令会阻塞(等到应用程序关闭),但后续命令会立即返回(应用程序仍在运行时)。这是如何工作的?

我在使用 bash 在文本编辑器中打开不同的连续文件时(使用 或 等命令)或类似地在使用 Web 浏览器时(使用 )注意到了这一点gedit file3.txtspyder file7.txtxdg-open file2.html假设后续命令以某种方式传递给现有进程,而不是产生其他进程?

通常,如果我想编辑多个文件,我可能会通过在后台显式运行第一次调用(使用&bg)来解决此行为,然后在前台运行每个后续调用,并避免关闭并重新打开应用程序。我如何控制我自己的(或其他人)应用程序是否以这种方式运行?

答案1

当您启动时gedit,它首先检查是否gedit已在运行。如果没有,它将继续打开文件。否则,它会向旧进程发出信号,在新选项卡中打开文件并退出。

相关内容