Domanda

Ho aggiunto un collegamento a un'applicazione in Ubuntu. Ogni volta che premo i tasti di scelta rapida, viene creata una nuova istanza dell'applicazione. Ho bisogno solo di un'istanza, quale script posso usare per aprire l'istanza esistente dell'applicazione o crearne una nuova se l'applicazione non è in esecuzione?

È stato utile?

Soluzione

Dipende molto dall'applicazione. Il caso più banale sarebbe il nome del processo noto che può essere eseguito solo da te (ovvero, senza istanze vaganti sul sistema):

pidof applicaton || /usr/bin/application

L'apertura di un'applicazione esistente può risultare complicata e, di nuovo, dipende dall'applicazione. Ti suggerirei di dare un'occhiata a alltray e di prestare particolare attenzione al alltray - -help output.

Modifica di ypnos: Se vuoi limitare questo solo all'utente corrente, dovresti usare pgrep invece di pidof, in questo modo:

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

Altri suggerimenti

Puoi anche provare uno script come questo:

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

touch $lock
$@
rm $lock

Se hai chiamato lo script 'runner.sh', puoi usarlo in questo modo:

runner.sh xcalc

È per i casi in cui pidof non funziona. Altrimenti scegli la soluzione di hacker, che è anche più robusta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top