lockfile (1) похож на хорошего кандидата, хотя остерегаются этого, это - часть procmail пакета, который Вы еще не могли установить на своей машине. Это - достаточно популярный пакет, что это должно быть упаковано для Вашей системы, если это еще не установлено. Три из этих четырех систем, которые я проверил, имеют его, и другой имеет его в наличии.
Используя его просто:
#!/bin/sh
LOCKFILE=$HOME/.myscript/lock
mkdir -p `dirname $LOCKFILE`
echo Waiting for lock $LOCKFILE...
if lockfile -1 -r15 $LOCKFILE
then
# Do protected stuff here
echo Doing protected stuff...
# Then, afterward, clean up so another instance of this script can run
rm -f $LOCKFILE
else
echo "Failed to acquire lock! lockfile(1) returned $?"
exit 1
fi
Опции, которые я дал, заставляют его повторить однажды секунда в течение максимум 15 секунд. Отбросьте флаг "-r", если Вы хотите, чтобы он ожидал навсегда.
Обычно существует журнал изменений. На самом деле это (или другие "видные уведомления" об изменениях) требуется GPL! (По крайней мере, эффективно так для чего-либо с несколькими участниками — посмотрите раздел GPLv2 2a.)
Для GNU coreutils пакет — и для в значительной степени всего остального из проекта GNU непосредственно — этот файл является определенно первым местом для взгляда и должен ответить вопрос 95% времени.
Почему бы не использовать управление исходным кодом, центростремительное для X для поиска функции Y? Источник repo является лучшим способом к indentify, когда конкретная функция была представлена.
Для coreutils можно направиться в http://git.savannah.gnu.org/cgit/coreutils.git и искать ключевые слова, связанные с Y в сообщениях журнала или конкретных строках кода, которые Вы идентифицировали как принадлежащий Y. Можно сделать это на веб-интерфейсе непосредственно, или еще лучше, клонировать источник repo к станции, и поиск с помощью мерзавца - делят пополам, вина мерзавца и журнал мерзавца - grep.
Затем мерзавец Использования - описывает, чтобы узнать, что тег является самым близким к определенной фиксации. Теги используются для номеров версий главным образом, таким образом это даст Вам версию, которая представила фиксацию.
Можно адаптировать вышеупомянутый метод, в зависимости от X, и это - управление исходным кодом.
]На []Debian[] и платформах, созданных в Debian, таких как []Ubuntu[]:[
] [sudo apt-get changelog coreutils > changelog.txt
]
[]предоставляет журнал изменений GNU Core Utilities вплоть до версии []4.5.1-1[
].[
]Не уверен, существуют ли такие же удобные решения на других платформах.[
].
ChangeLog.bz2
в/usr/share/doc/coreutils-8.10
в моей системе Fedora и главной записи от2011-02-04
. Возможный также, что это - ветвление RH — я зарегистрируюсь в этом позже сегодня. – mattdm 23.03.2011, 12:19