概述如何在Linux中打开一个程序的多个实例
举例来说,要打开gedit编辑器的多个实例,我写了一个像这样的shell脚本 –
gedit& gedit& gedit& gedit&
但是在运行shell脚本./example.sh ,我只能find一个gedit实例! 我甚至使用了&运算符,以便shell不会等待一个实例完成。 但我仍然看不到gedit四个实例。
另外我直接从命令提示符下尝试。 如果我只是在命令行中inputgedit& ,它会显示1906 (这是新创build的gedit进程的PID),启动一个新的gedit实例并返回到提示符。 当我在命令行键入gedit& ,这次显示了1909 ,但没有新的gedit实例! 而且我也无法在系统监视器中findPID 1909任何进程。 这个新过程在哪里消失?
是具体到gedit的发生? 如果是这样,创build一个程序的多个实例时的通用行为是什么?
GNU sed – 查找或replace空格或新行。 为什么这不起作用? v3.02 vs v4.2
如何访问您在Bash中采购的文件的基本文件名?
XcopY是通过windows文件系统复制文件夹/文件的最快的工具吗?
如何检索windowsbatch file中的P4 ROOtvariables值?
在windows上的git和系统variables
命令提示符“networking视图系统错误6118”
将pdf的内容打印到命令行
NodeJs REPLvariables赋值 – 需要帮助弄清楚什么是错误的
我如何反汇编在C上制作的对象程序?
在batch file中将input传递给程序提示
这是特定于gedit。 您可能正在寻找gedit –new-window & 。
从man gedit :
–new-window Create a new toplevel window in an existing instance of gedit.
这似乎特定于gedit,也许有一些选项关闭检查正在运行的实例。
看起来gedit首先是在寻找一个正在运行的实例,而忽略了更多的启动请求(只是一个疯狂的猜测)。 但手册页说,你可以打开另一个窗口:
–new-window Create a new toplevel window in an existing instance of gedit.
这不会完全解决你的问题,但也许这就是你首先要找的。
祝你好运,Alex。
我来到这里,试图启动多个大胆的事例。
只允许一个实例实际上很难实现,因为程序需要查找已经运行的实例并与之通信。 这是通过D-Bus完成的。 为了防止与已经启动的实例进行通信,您可以在另一个D-Bus会话中运行该程序:
nohup dbus-run-session audacIoUs&
nohup dbus-run-session audacIoUs&
注意:即使关闭终端,nohup也会保持程序运行。
这种方法也适用于不允许用户在多个实例与一个实例之间进行选择的其他程序。
注意,如果多个实例访问相同的配置文件,这可能会引入错误。
用xfce 4.10.1和dbus 1.8.16-1测试
对于Scite:
scite -check.if.already.open=false &
在脚本中使用这个。 我发现它做我所需要的:
#!/bin/bash xterm -e \”gedit; bash\” &disown
总结
以上是内存溢出为你收集整理的如何在Linux中打开一个程序的多个实例全部内容,希望文章能够帮你解决如何在Linux中打开一个程序的多个实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容