Ссылка для правильного обращения файла PID на Unix

Пока пакетный файл находится в том же каталоге, что и исполняемый, он будет выполнять этот файл adb.bat, потому что командная строка Windows будет сначала искать в текущем каталоге в поисках исполняемого файла, когда вы сообщаете ваш командный файл для выполнения команды.

Что касается решения вашей проблемы, я бы сказал, если это возможно, тогда измените имя вашего файла adb.bat на что-то другое, например adbFile.bat, таким образом, вы не будете вызывать его каждый раз, когда вам потребуется ваши инструменты adb из этого каталога.

58
задан bignose 9 May 2010 в 06:04
поделиться

3 ответа

Насколько я знаю, файлы PID являются конвенцией, а не чем-то, для чего можно найти уважаемый, главным образом авторитетный источник. Самым близким, который я мог найти, является этот раздел Стандарта Иерархии Файловой системы.

Эта библиотека Perl могла бы быть полезной, так как похоже, что автор, по крайней мере, задумался над некоторыми проблемами, чем может возникнуть.

Я полагаю, что файлы под/var/run часто обрабатываются специалистами по обслуживанию дистрибутива, а не авторами демонов, так как это - обязанность специалистов по обслуживанию дистрибутива удостовериться, что все init сценарии играют по правилам вместе. Я проверил документацию разработчика Debian и Fedora и не мог найти подробные инструкции, но Вы смогли получать больше информации о списках рассылки их разработчиков.

17
ответ дан Josh Kelley 24 November 2019 в 19:09
поделиться

В зависимости от распределения, на самом деле init сценарий, который обрабатывает pidfile. Это проверяет на существование при запуске, удаляет при остановке и т.д. Мне не нравится делать его тот путь. Я пишу свои собственные init сценарии и обычно не использую stanard init функции.

Правильно написанная программа (демон) будет иметь некоторый конфигурационный файл, говорящий, где этот pidfile (если таковые имеются) должен быть записан. Это будет также заботиться для установления обработчиков сигналов так, чтобы файл PID был очищен на нормальном, или аварийном выходе, каждый раз, когда сигнал может быть обработан. Файл PID затем дает init сценарию корректный PID, таким образом, он может быть остановлен.

Поэтому, если pidfile уже существует при запуске, это - очень хороший индикатор к программе, которую это ранее разрушило и должно сделать некоторое усилие по восстановлению (если применимо). Вы вид охоты, что логика в ноге, если у Вас есть сам init сценарий, проверяющий на существование PID или удаляющий связь с ним.

До пространства имен это должно следовать за названием программы. При запуске 'демона нечто' это было бы нечто-daemon.pid

Необходимо также исследовать/var/lock/subsys, однако это используется главным образом на разновидностях Red Hat.

7
ответ дан Magne 24 November 2019 в 19:09
поделиться

Прежде всего, на всем современном UNIXes /var/run не сохраняется через перезагрузки.

Общий метод обработки файла PID состоит в том, чтобы создать его во время инициализации и удалить его из любого выхода, или нормальный обработчик или обработчик сигналов.

Существует два канонических способа атомарно создать/проверить для файла. Основной в эти дни должен открыть его с O_EXCL флаг: если файл уже существует, сбои вызова. Старый путь (обязательный в системах без O_EXCL) должен создать его со случайным именем и ссылкой на него. Ссылка перестанет работать, если цель будет существовать.

21
ответ дан bignose 24 November 2019 в 19:09
поделиться
Другие вопросы по тегам:

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