A fonte diz:
* Without a pid in the lockfile, the lock
* is valid if it is newer than 5 mins.
Parece que você não precisa de lockfile-touch
se estiver usando a opção --use-pid
.
Há outra pergunta que é relacionado, mas na verdade é diferente, porque eu estou perguntando por que o comportamento do lockfile-create & O lockfile-touch é diferente do conteúdo atual da página de manual.
Eu tenho este script para aprender e entender os utilitários lockfile-progs. Eu testei e funciona bem. Mas, acho que as linhas relacionadas ao lockfile-touch são desnecessárias. Meu script precisa apenas iniciar uma instância do xterm em uma máquina por usuário. Eu farei a coisa certa removendo as linhas touch-lockfile? Alguém sabe se vou ter algum problema com o script modificado?
#!/bin/bash
function atexit {
kill $LOCKFILE_TOUCH_PID
lockfile-remove $DOTLOCK_FILENAME
echo atexit!
exit
}
DOTLOCK_FILENAME=/tmp/xterm-one-instance-$UID
lockfile-create --retry 0 --use-pid $DOTLOCK_FILENAME || exit
lockfile-touch $DOTLOCK_FILENAME & LOCKFILE_TOUCH_PID=$!
echo lockfile-touch running, PID=$LOCKFILE_TOUCH_PID
trap atexit EXIT HUP INT TERM
xterm
Meu script modificado:
#!/bin/bash
function atexit {
lockfile-remove $DOTLOCK_FILENAME
echo atexit!
exit
}
DOTLOCK_FILENAME=/tmp/xterm-one-instance-$UID
lockfile-create --retry 0 --use-pid $DOTLOCK_FILENAME || exit
trap atexit EXIT HUP INT TERM
xterm
ainda impede outra instância do xterm após 5m 33s. Achei esse comportamento confuso depois de ler na página de manual que preciso tocar no arquivo de bloqueio a cada cinco minutos.