Я бы хотел, чтобы один из моих корневых процессов не удалил определенный файл. Поэтому я наткнулся на команду flock, она, кажется, соответствует моим потребностям, но я не получил ее синтаксис.
Если я указываю только общую блокировку, она не работает:
flock -s "./file.xml"
Если я добавлю параметр тайм-аута, он все равно не будет работать:
flock -s -w5 "./file.xml"
Кажется, что он подходит flock [-sxun][-w #] fd#
.
(Что это за параметр fd#
?)
Итак, я попробовал:
flock [-sxon][-w #] file [-c] command
Используя flock -s -w5 "./file.xml" -c "tail -3 ./file.xml"
, и это сработало, команда tail в ./file.xml была выполнена.
Но я хотел бы знать, блокировка заканчивается после команды или длится 5 секунд после окончания выполнения команды? Мой главный вопрос: как я могу предотвратить удаление процесса в Linux другим корневым процессом?