Linux Bash脚本-运行应用程序的当前或新实例
我在ubuntu中添加了一个应用程序的快捷方式。每次我按下快捷键,就会创建一个新的应用程序实例。我只需要一个实例,如果应用程序未运行,我可以使用什么脚本打开应用程序的现有实例或创建新实例 这在很大程度上取决于应用程序。最简单的情况是已知的进程名,它只能由您运行(即,系统上没有多余的实例): 打开一个现有的应用程序可能会变得很棘手,这同样取决于应用程序。我建议您看看thingie,并特别注意Linux Bash脚本-运行应用程序的当前或新实例,linux,bash,shortcut,Linux,Bash,Shortcut,我在ubuntu中添加了一个应用程序的快捷方式。每次我按下快捷键,就会创建一个新的应用程序实例。我只需要一个实例,如果应用程序未运行,我可以使用什么脚本打开应用程序的现有实例或创建新实例 这在很大程度上取决于应用程序。最简单的情况是已知的进程名,它只能由您运行(即,系统上没有多余的实例): 打开一个现有的应用程序可能会变得很棘手,这同样取决于应用程序。我建议您看看thingie,并特别注意alltray--help输出 由ypnos编辑: 如果只想将此限制为当前用户,则应使用pgrep而不是pi
alltray--help
输出
由ypnos编辑:
如果只想将此限制为当前用户,则应使用pgrep而不是pidof,如下所示:
pgrep -u `id -u` application || application
这在很大程度上取决于应用程序。最简单的情况是已知的进程名,它只能由您运行(即,系统上没有多余的实例): 打开一个现有的应用程序可能会变得很棘手,这同样取决于应用程序。我建议您看看thingie,并特别注意
alltray--help
输出
由ypnos编辑:
如果只想将此限制为当前用户,则应使用pgrep而不是pidof,如下所示:
pgrep -u `id -u` application || application
您也可以尝试以下脚本:
#! /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 xcalc
如果调用脚本“runner.sh”,可以如下使用:
#! /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 xcalc
适用于pidof不起作用的情况。除此之外,您还可以使用黑客的解决方案,该解决方案也更加健壮。您也可以尝试以下脚本:
#! /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 xcalc
如果调用脚本“runner.sh”,可以如下使用:
#! /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 xcalc
适用于pidof不起作用的情况。否则,请使用黑客的解决方案,该解决方案也更加健壮。查看它是否已经在运行,并可以选择点击Alt+Tab?我使用的应用程序是系统托盘中的一个简单字典,不会出现在Alt+Tab中。我经常使用它,所以我在阅读文章时多次按快捷键,所以我希望只需按快捷键,它就可以快速打开。查看它是否已在运行,并可以选择按Alt+Tab?我使用的应用程序是系统托盘中的一个简单字典,而不会显示在Alt+Tab中。我经常使用它,所以我在阅读文章时多次按下快捷键,所以我希望只需按下快捷键,它就可以快速打开。据我所知,您的脚本可以确保即使有许多用户登录并使用同一个应用程序,系统范围内也只能运行一个应用程序实例?不,锁定文件绑定到用户,请参阅脚本中的变量$user。据我所知,您的脚本确保了即使有许多用户登录并使用同一应用程序,也只能有一个应用程序实例在系统范围内运行?否,锁定文件绑定到用户,请参阅脚本中的变量$user。