TL; DR
Em um de seus comentários , você declara:
Bem, minha situação exata é: eu tenho o caminho para um arquivo. Está bloqueado se o Firefox estiver em execução. Eu quero ver se está bloqueado ou não para dizer se o Firefox está em execução.
Sua pergunta original sobre arquivos de bloqueio parece ser o longo caminho, quando há maneiras mais fáceis de descobrir se o Firefox está sendo executado para um determinado usuário e inspecionar o estado do processo.
Examinando o estado do processo
Uma maneira mais sensata de encontrar o PID de um determinado processo é usar o pgrep do pacote procps . Por exemplo:
$ pgrep -u $LOGNAME firefox
5671
Você pode inspecionar o estado do PID com ps :
$ ps 5671
PID TTY STAT TIME COMMAND
5671 ? Sl 105:47 /usr/lib/firefox/firefox
ou apenas obtenha as bandeiras de estado sem nenhum outro problema:
$ ps -ho stat $(pgrep -u $LOGNAME firefox)
Sl
No meu sistema, o one-liner acima leva consistentemente apenas 1,4 milissegundos para ser concluído. Sua milhagem pode variar.
Códigos de estado do processo
A seção PROCESS STATE CODES do ps (1) detalha o que significam os vários sinalizadores de estado. No Ubuntu 14.04, a página do manual diz:
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