TL; DR
In uno dei tuoi commenti , dichiari:
Bene, la mia situazione esatta è: ho il percorso di un file. È bloccato se Firefox è in esecuzione. Voglio vedere se è bloccato o non dire se Firefox è in esecuzione.
La tua domanda originale sui lockfile sembra essere molto lunga quando ci sono modi più semplici per scoprire se Firefox è in esecuzione per un determinato utente e per controllarne lo stato del processo.
Stato del processo d'esame
Un modo più ragionevole per trovare il PID di un dato processo è usare pgrep dal pacchetto procps . Per esempio:
$ pgrep -u $LOGNAME firefox
5671
È quindi possibile ispezionare lo stato del PID con ps :
$ ps 5671
PID TTY STAT TIME COMMAND
5671 ? Sl 105:47 /usr/lib/firefox/firefox
o semplicemente ottenere le bandiere di stato senza nessun'altra cruft:
$ ps -ho stat $(pgrep -u $LOGNAME firefox)
Sl
Un mio sistema, il one-liner sopra richiede costantemente solo 1,4 millisecondi per essere completato. Il tuo chilometraggio può variare.
Codici di stato del processo
La sezione CODICI DI STATO DI PROCESSO di ps (1) indica in dettaglio il significato dei vari flag di stato. Su Ubuntu 14.04 la pagina man dice:
PROCESS STATE CODES
Here are the different values that the s, stat and state output
specifiers (header "STAT" or "S") will display to describe the state of
a process:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is
being traced
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by
its parent
For BSD formats and when the stat keyword is used, additional
characters may be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads
do)
+ is in the foreground process group