我在 ubuntu 中添加了一个应用程序的快捷方式。每次我按下快捷键时,都会创建一个新的应用程序实例。我只需要一个实例,如果应用程序没有运行,我可以使用什么脚本来打开现有的应用程序实例或创建一个新实例?
问问题
1060 次
2 回答
3
这很大程度上取决于应用程序。最简单的情况是只能由您运行的已知进程名称(即系统上没有杂散实例):
pidof applicaton || /usr/bin/application
打开现有的应用程序可能会变得棘手,并且再次取决于应用程序。我建议你看看alltray thingie并特别注意alltray --help
输出。
由 ypnos 编辑: 如果您只想将其限制为当前用户,您应该使用 pgrep 而不是 pidof,如下所示:
pgrep -u `id -u` application || application
于 2009-09-14T19:50:17.950 回答
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 不起作用的情况。否则去黑客的解决方案,这也更健壮。
于 2009-09-14T19:54:02.233 回答