1

ubuntu でアプリケーションへのショートカットを追加しました。ショートカット キーを押すたびに、アプリケーションの新しいインスタンスが作成されます。必要なインスタンスは 1 つだけです。アプリケーションの既存のインスタンスを開く、またはアプリケーションが実行されていない場合に新しいインスタンスを作成するには、どのスクリプトを使用できますか?

4

2 に答える 2

3

アプリケーションによって大きく異なります。最も些細なケースは、あなただけが実行できる既知のプロセス名です(つまり、システム上に漂遊インスタンスはありません)。

pidof applicaton || /usr/bin/application

既存のアプリケーションを開くのは難しい場合があり、これもアプリケーションによって異なります。alltraythingieを見て、出力に特に注意を払うことをお勧めしますalltray --help

ypnosによる編集: これを現在のユーザーのみに制限する場合は、次のようにpidofの代わりにpgrepを使用する必要があります。

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 に答える