我在ubuntu中添加了一个应用程序的快捷方式。每次按快捷键时,都会创建一个新的应用程序实例。我只需要一个实例,我可以用什么脚本打开现有的应用程序实例,或者如果应用程序没有运行则创建一个新的实例?
答案 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不起作用的情况。此外,还有黑客的解决方案,它也更强大。