Возможно, команда lockfile сделает то, в чем Вы нуждаетесь.
lockfile ~/.config/mylockfile.lock
.....
rm -f important.lock
Это обычно происходит, если процесс пытается читать из stdin
поток. Когда процесс в фоновом режиме, он получает сигнал TTIN и таким образом замораживается (то же поведение как Стоповый сигнал). Существует также двойной сигнал TTOU, когда фоновый процесс пытается записать в свой терминал.
Обеспечение его к переднему плану возобновляет процесс и позволяет ему читать из Вашего терминала.
Демонстрация:
$ cat t.sh
#! /bin/sh
sleep 1
read dummy
$ ./t.sh &
[1] 3364
$
[1]+ Stopped ./t.sh
$ ps aux|grep t.sh
me 3364 0.0 0.0 11268 1200 pts/0 T 17:04 0:00 /bin/sh ./t.sh
Один из способов избежать этого состоит в том, чтобы использовать nohup
, но это может иметь странные эффекты, если программа не имеет дело с перенаправлением ее входного потока к /dev/null
.