Bash脚本 - 运行应用程序的当前或新实例

时间:2009-09-14 19:45:09

标签: linux bash shortcut

我在ubuntu中添加了一个应用程序的快捷方式。每次按快捷键时,都会创建一个新的应用程序实例。我只需要一个实例,我可以用什么脚本打开现有的应用程序实例,或者如果应用程序没有运行则创建一个新的实例?

2 个答案:

答案 0 :(得分:3)

这在很大程度上取决于应用程序。最简单的情况是已知的进程名称,只能由您运行(即系统上没有杂散实例):

pidof applicaton || /usr/bin/application

打开现有应用程序可能会变得棘手,并且再次取决于应用程序。我建议您查看alltray thingie并特别注意alltray --help输出。

按ypnos编辑: 如果您只想将此限制为当前用户,则应使用pgrep而不是pidof,如下所示:

pgrep -u `id -u` application || application

答案 1 :(得分:2)

您也可以尝试这样的脚本:

#! /bin/bash
user=`id -un`
lock=/tmp/$user-$1-lock
if [ -e $lock ]; then
    exit #app is already running
fi

touch $lock
$@
rm $lock

如果您调用脚本'runner.sh',则可以像这样使用它:

runner.sh xcalc

适用于pidof不起作用的情况。此外,还有黑客的解决方案,它也更强大。