我在 Oracle Linux 上。我有一个执行以下操作的 shell 脚本:
#some stuff happening here
gnome-terminal --title='my application' -x /path/my_application -param val
#some more stuff
现在,脚本很可能会被执行多次。但是,我只想my_application
在它尚未运行时启动。我找到了以下代码:
ps cax | grep my_application > /dev/null
if [ $? -eq 0 ]; then
echo "My application already running."
else
gnome-terminal --title='my application' -x /path/my_application -param val
fi
这工作正常。这是我有问题的地方。我有第二个 shell 脚本。它也可以运行my_application
,但参数不同。两个脚本可能同时执行。如果发生这种情况,则必须有两个my_application
正在运行的实例,因为它们具有不同的参数。我的想法是给每个 gnome-terminal 一个不同的标题,然后在开始之前检查具有该标题的 gnome-terminal 是否已经存在my_application
。
也就是说,我可能完全错了,所以欢迎任何建议。
总之,我有两个脚本都启动同一个应用程序,但参数不同。两个脚本可以一起执行,也可以执行多次。如果给定的脚本启动了应用程序,那么当再次执行该脚本时它不能再次启动应用程序(假设所述应用程序仍在运行)。但是,启动应用程序的一个脚本不得阻止另一个脚本启动同一应用程序。