Переустановка Debian wheezy [дубликат]

Насколько я знаю, нет. Вы должны закрыть его вручную:

if flock 9 -nx
then
   program 9>&- #<= manual close of fd 9 after `program` has forked but before it execs
else
  echo "Lock held :/)" >&2
fi 9> /tmp/lk

Если вы хотите пошалить, вы можете установить флаг, вызвав функцию fcntl непосредственно через ctypes.sh:

#!/bin/bash

echo initial
ls /proc/$$/fd/

echo with 9
{

ls /proc/$$/fd/

echo with 9 in an execced child
bash -c ' ls /proc/$$/fd/'

} 9

Выход:

initial
0
1
2
255
with 9
0
1
2
255
9
with 9 in an execced child
0
1
2
3
9

BEGIN MAGIC
initial
0
1
2
255
with 9
0
1
2
255
9
with 9 in an execced child
0
1
2
3

(Не опечатка при вставке - 9 действительно была закрыта при выполнении дочернего bash).

0
06.06.2013, 20:25
0 ответов

Теги

Похожие вопросы