Fino ad ora ho usato
pidof -o %PPID -x "my-tool"
Per rilevare il pid di un'istanza eventualmente in esecuzione di my-tool.
Questa è la versione breve del file my-tool, uno script bash eseguibile
#!/bin/bash
if pidof -o %PPID -x "my-tool"; then
echo "Already running"
exit 1
fi
... if not running go on
Ma ora devo consentire una singola istanza per utente e più per macchina , quindi possiamo avere anche 100 my-tool in esecuzione nello stesso momento, ma solo 1 per utente.
Nota che ho bisogno di un test per creare qualcosa di simile a un singleton. Se lo strumento verrà avviato e c'è un'altra istanza in esecuzione, si chiuderà automaticamente.
In breve: ho bisogno che uno script bash possa rilevare se è già in esecuzione per l'utente corrente e in questo caso deve uscire.
Come ?
pidof, ci sono strumenti migliori mentirepgrep