Для многих демонов в любой момент времени в системе должен работать только один экземпляр демона. В этом случае демон обычно хранит свой PID в хорошо известном каталоге (в Linux в настоящее время /run
, ранее /var/run
), чтобы указать, что экземпляр демона это работает.
Если вы попытаетесь вызвать второй экземпляр такого демона, вновь вызванный демон проверит существующую запись (представьте, что это файл блокировки) в папке /run
и, если найдет, завершит работу.
Если демон перезапускается, PID нового экземпляра записывается в файл. Новый экземпляр получает свой собственный PID, нет возможности запустить процесс с заданным PID.
Файл PID также используется для определения того, какой процесс нужно убить, чтобы остановить демон.
Если время не указано, touch
изменяет метки времени всех своих аргументов на текущее время в момент касания каждого файла, что должно создавать разные метки времени для каждого файла, но во многих случаях это приводит к применению одного и того же временная метка для всех его аргументов; вы можете проверить это, запустив stat
для всех затронутых файлов. Они обрабатываются в порядке, указанном в командной строке.
Чтобы получить желаемый результат, вам нужно зациклить и touch
каждый файл по отдельности, с некоторой задержкой:
for file in {1..12}.txt; do touch $file; sleep 0.1; done
(с большей или меньшей задержкой в зависимости от разрешения временной метки базовой файловой системы ).
Обратите внимание, что ls -t
перечисляет файлы, отсортированные по убыванию метки времени; чтобы увидеть увеличение времени, вам нужно использовать ls -rt
.
Возможно, это немного громоздко, но если это в скрипте, я бы использовал цикл for.
бывший:
for x in 1.txt 2.txt 3.txt 4.txt [as many as you want here]; do touch $x; done
Это привело бы к тому, что они всегда создавались бы в указанном порядке. Вы, конечно, можете изменить имена на любые и не следовать какой-либо схеме. Если вы создаете файлы с тем же именем или числовым шаблоном, как в вашем примере, я бы сделал это:
for x in $(seq 1 10); do touch $x.txt; done