Пока пакетный файл находится в том же каталоге, что и исполняемый, он будет выполнять этот файл adb.bat, потому что командная строка Windows будет сначала искать в текущем каталоге в поисках исполняемого файла, когда вы сообщаете ваш командный файл для выполнения команды.
Что касается решения вашей проблемы, я бы сказал, если это возможно, тогда измените имя вашего файла adb.bat на что-то другое, например adbFile.bat, таким образом, вы не будете вызывать его каждый раз, когда вам потребуется ваши инструменты adb из этого каталога.
Насколько я знаю, файлы PID являются конвенцией, а не чем-то, для чего можно найти уважаемый, главным образом авторитетный источник. Самым близким, который я мог найти, является этот раздел Стандарта Иерархии Файловой системы.
Эта библиотека Perl могла бы быть полезной, так как похоже, что автор, по крайней мере, задумался над некоторыми проблемами, чем может возникнуть.
Я полагаю, что файлы под/var/run часто обрабатываются специалистами по обслуживанию дистрибутива, а не авторами демонов, так как это - обязанность специалистов по обслуживанию дистрибутива удостовериться, что все init сценарии играют по правилам вместе. Я проверил документацию разработчика Debian и Fedora и не мог найти подробные инструкции, но Вы смогли получать больше информации о списках рассылки их разработчиков.
В зависимости от распределения, на самом деле init сценарий, который обрабатывает pidfile. Это проверяет на существование при запуске, удаляет при остановке и т.д. Мне не нравится делать его тот путь. Я пишу свои собственные init сценарии и обычно не использую stanard init функции.
Правильно написанная программа (демон) будет иметь некоторый конфигурационный файл, говорящий, где этот pidfile (если таковые имеются) должен быть записан. Это будет также заботиться для установления обработчиков сигналов так, чтобы файл PID был очищен на нормальном, или аварийном выходе, каждый раз, когда сигнал может быть обработан. Файл PID затем дает init сценарию корректный PID, таким образом, он может быть остановлен.
Поэтому, если pidfile уже существует при запуске, это - очень хороший индикатор к программе, которую это ранее разрушило и должно сделать некоторое усилие по восстановлению (если применимо). Вы вид охоты, что логика в ноге, если у Вас есть сам init сценарий, проверяющий на существование PID или удаляющий связь с ним.
До пространства имен это должно следовать за названием программы. При запуске 'демона нечто' это было бы нечто-daemon.pid
Необходимо также исследовать/var/lock/subsys, однако это используется главным образом на разновидностях Red Hat.
Прежде всего, на всем современном UNIXes /var/run
не сохраняется через перезагрузки.
Общий метод обработки файла PID состоит в том, чтобы создать его во время инициализации и удалить его из любого выхода, или нормальный обработчик или обработчик сигналов.
Существует два канонических способа атомарно создать/проверить для файла. Основной в эти дни должен открыть его с O_EXCL
флаг: если файл уже существует, сбои вызова. Старый путь (обязательный в системах без O_EXCL
) должен создать его со случайным именем и ссылкой на него. Ссылка перестанет работать, если цель будет существовать.