pid файл что это
Для чего нужны файлы pid и lock?
Я часто вижу, что программы указывают файлы pid и lock. И я не совсем уверен, что они делают.
Например, при компиляции nginx:
Может кто-нибудь пролить свет на этот?
pid-файлы пишутся некоторыми программами для записи их идентификатора процесса во время их запуска. Это имеет несколько целей:
Разумеется, наличие pid-файла не гарантирует, что этот конкретный идентификатор процесса работает, поэтому этот метод не на 100% надежен, но во многих случаях «достаточно хорош». Проверка наличия определенного PID в таблице процессов не является полностью переносимой в UNIX-подобных операционных системах, если только вы не хотите зависеть от ps утилиты, которую может быть нежелательно вызывать во всех случаях (и я считаю, что некоторые UNIX-подобные операционные системы В ps любом случае реализовать по- другому).
Файлы блокировки используются программами для обеспечения того, чтобы два (с хорошим поведением) отдельных экземпляра программы, которые могут одновременно работать в одной системе, не обращались к чему-то другому одновременно. Идея состоит в том, что прежде чем программа получит доступ к своему ресурсу, она проверяет наличие файла блокировки, и, если файл блокировки существует, либо выдает ошибку, либо подождите, пока она не исчезнет. Когда он не существует, программа, желающая «приобрести» ресурс, создает файл, а затем другие экземпляры, которые могут встретиться позже, будут ожидать завершения этого процесса. Конечно, это предполагает, что программа, «получающая» блокировку, фактически снимает ее и не забывает удалить файл блокировки.
start-stop-daemon
Содержание
Ее функция следующая: она позволяет запустить любой процесс в виде демона, то есть в фоне. Это нужно для того, чтобы запускать в фоне те процессы, которые сами не умеют уходить в фон. Запуск процесса в виде демона позволит не держать постоянной открытой tty-консоль или вкладку в терминале, а также даст больше возможностей для контроля данного процесса.
Основы
Запуск демона
Программа запустится и будет работать в фоне. Для взятого примера этого достаточно.
Остановка демона
Работа с pid-файлами
Теперь в заданном файле записан PID запущенного процесса. Зная его, вы можете отличить его от других копий той же программы, найти процесс, к примеру, в top и сделать с ним что-либо (например, изменить приоритет или остановить).
Для остановки процессов также можно использовать pid-файлы, чтобы остановить конкретный процесс. При этом указание исполняемого файла не требуется, нужно лишь задать действие «стоп» и pid-файл
start-stop-daemon прочитает PID из заданного файла, проверит, есть ли такой процесс и остановит его.
Прочие возможности
Передача параметров запускаемой программе
Если запускаемой программе нужно передать какие-либо параметры, они отделяются двумя дефисами. Все, что идет далее, не воспринимается как параметры для start-stop-daemon, а передается запускаемой программе в неизмененном виде. Пример запуска museekd с альтернативным файлом конфигурации:
Расширение файла PID
Process ID Format
Что такое файл PID?
Полное имя формата файлов, которые используют расширение PID: Process ID Format. Формат файла PID совместим с программным обеспечением, которое может быть установлено на системной платформе Linux, Mac OS. PID файл относится к категории Другие файлы так же, как #NUMEXTENSIONS # других расширений файлов, перечисленных в нашей базе данных. TextEdit поддерживает PID файлы и является наиболее часто используемой программой для обработки таких файлов, но 5 могут также использоваться другие инструменты. На официальном сайте разработчика Apple, Inc. вы найдете не только подробную информацию о программном обеспечении TextEdit, но также о PID и других поддерживаемых форматах файлов.
Программы, которые поддерживают PID расширение файла
Ниже вы найдете указатель программ, которые можно использовать для открытия файлов PID, разделенных на категории 2 в соответствии с поддерживаемой системной платформой. PID файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.
Программы, обслуживающие файл PID
Как открыть файл PID?
Причин, по которым у вас возникают проблемы с открытием файлов PID в данной системе, может быть несколько. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами Process ID Format, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами PID.
Шаг 1. Получить TextEdit
Проблемы с открытием и работой с файлами PID, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами PID на вашем компьютере. Этот легкий. Выберите TextEdit или одну из рекомендованных программ (например, Text editor, Vim) и загрузите ее из соответствующего источника и установите в своей системе. В верхней части страницы находится список всех программ, сгруппированных по поддерживаемым операционным системам. Если вы хотите загрузить установщик TextEdit наиболее безопасным способом, мы рекомендуем вам посетить сайт Apple, Inc. и загрузить его из официальных репозиториев.
Шаг 2. Обновите TextEdit до последней версии
Если проблемы с открытием файлов PID по-прежнему возникают даже после установки TextEdit, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия TextEdit. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Если у вас установлена более старая версия TextEdit, она может не поддерживать формат PID. Последняя версия TextEdit должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.
Шаг 3. Назначьте TextEdit для PID файлов
После установки TextEdit (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия PID файлов. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.
Изменить приложение по умолчанию в Windows
Изменить приложение по умолчанию в Mac OS
Шаг 4. Убедитесь, что PID не неисправен
Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл PID действительным. Вероятно, файл поврежден и, следовательно, недоступен.
Если файл заражен, вредоносная программа, находящаяся в файле PID, препятствует попыткам открыть его. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если сканер обнаружил, что файл PID небезопасен, действуйте в соответствии с инструкциями антивирусной программы для нейтрализации угрозы.
2. Убедитесь, что структура файла PID не повреждена
Вы получили PID файл от другого человека? Попросите его / ее отправить еще раз. Возможно, файл был ошибочно скопирован, а данные потеряли целостность, что исключает доступ к файлу. При загрузке файла с расширением PID из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.
3. Убедитесь, что у вас есть соответствующие права доступа
Иногда для доступа к файлам пользователю необходимы права администратора. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл Process ID Format.
4. Проверьте, может ли ваша система обрабатывать TextEdit
Если в системе недостаточно ресурсов для открытия файлов PID, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.
5. Убедитесь, что ваша операционная система и драйверы обновлены
Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом Process ID Format. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами PID, влияющими на более старые версии данного программного обеспечения.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла PID мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле PID.
PID file
Задача демона или init script’a?
Кто должен заботиться о создании и удалении?
Демона в общем случае.
Демон убин kill’om, мои действия?
Вот, кстати, много придумывал: как обезопасить процесс и обеспечить однозначно уникальный запуск. Навелосипедил нечто вроде pgrep + чтение pid-файла. Потом навелосипедил улучшение этого велосипеда (если есть PID-файл, сначала проверяется, что за процесс имеет такой PID: если тот же, то второй процесс отваливается, если чужой — продолжается стандартная проверка по /proc)
PID-файл стал невалидным. Какие тебе еще нужны действия?
Простейший случай: если нет процесса с PID’ом, записанном в PID-файле, либо этот процесс — не наш, то пересоздать PID файл и работать. Но есть шанс, что у тебя что-то уже работает, а PID-файл кто-нибудь стер, например.
Нажали RESET, твои действия при буте?
Кто должен заботиться о создании и удалении?
О создании — демон. Но путь к PID-файлу задаваться — инитскриптом.
О проверке валидности и удалении — инитскрипт.
Не, требуется просто проконтроллировать, чтобы демон был только один. Есть другие методы?
Проверить наличие PID’а при запуске и решить, что это и нужно ли еще.
Как вариант: создать, открыть, unlink. Тогда файл пропадёт, когда процесс его использующий пропадёт.
когда демон получает системный сигнал о том что его убивают — то демон закрывается и САМ в это время подчищает за собой pid-файл. всё логично 🙂
Не катит. Файл должен быть видимым.
или может быть надо было дать ссылку эту:
тогда то что я аписал не поможет 🙂
..а не потомучто Леннарт якобы дружит с гипножабой 🙂
Бред. Каждый демонописатель в ответе за того, кого приручил свой велосипед.
Свои варианты я выше приводил. Они работают и никаких зондов в задницу вставлять не надо.
демон должен просто работать. и уметь себя корректно завершать (когда его просят завершать).
это точно также логично, как и логично не обращать внимание на segfault-ные ситуации во время создания/удаления PID силами самого демона.
какого фига вообще демон должен заботится о своём собственном PID?
Ничего себе. Если подумать, какого фига я должен заботиться о своем благосостоянии? Пусть меня озолотят! А я ничего ради этого не буду делать.
ситуации с segfault — сервершенно не является компетенцией демона, который делает эти segfault
Ага, отвалившийся после километра пробега кардан — не вина автомеханика дяди Васи.
Ага, отвалившийся после километра пробега кардан — не вина автомеханика дяди Васи.
а почему это его вина? наиболее вероятно — что был инцедент с неким хулиганом, который проник на автостоянку ОЧЕНЬ СИЛЬНО стучал жёстким диском по кардану.
. (а потом на этом жёстком диске — хулиган установил Linux.. но уже уже другая история :)).
по крайней мере мы знаем что автомеханник приложил все силы чтобы кардан не отваливался 🙂
(даже если окажется что ситуация с хулиганом оказалась вымышленной кемто :))
вобщем, мне кажется что я НЕ смогу тебе обяснить всю эту ЛеннартПоттерингвскую философию..
..её надо понимать. чуствовать.
она приходит сама к тебе, если захочет
Для этого надо мастдайку осилить 😉
кстате на МастДайке — SystemD не работает.. и поэтому если нужно запускать демон именно там — то как раз МастДай это именно то место где нужно тра..продумывать ситуации с различными неожиданными завершениями демона (Segfault) и его соответствующим отношением к PID-файлу..
..а вот святой GNU/Linux в лицце Поттеринга — всё упрощает. и делает логичным =(^_^)=
в генточке об этом может позаботиться start-stop-daemon, насчет других дистров не знаю, может он там тоже есть
ТОЧНО! я понял! ДА! нужно осилить весь геморой в венде, чтобы понять почему нужен SystemD
(вендовый геморой — этоже многократно-усиленный геморой старых UNIX-принципов. )
венда — она как лупа!
Я как раз с помощью него на убунте тестил, и всплыло вот это http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=610719
Поэтому решил узнать как люди делают и предоставить более стабильное решение.
а зачем в винде PID-файл нужен-то? Там вроде как винда сама за сервисами следит
святой GNU/Linux в лицце Поттеринга
Ну ты и вендузятник.
Вообще не понимаю зачем нужны эти пиды? Ведь можно же просто сделать один раз символьное устройство которое работало бы по следующему принципу: при чтении из него отдавало количество процессов запущенных от данного бинарника (или скрипта). И при запуске демон должен прочесть из этого устройства цифру, а дальше в зависимости если число равно 1 (т.е. один процесс от этого файла в системе) то начать работу, а если больше то самоубитсама.
ды вы что?! обкурились все?!
для этого дела в операционной системе есть блокировочные файлы!
делаешь при запуске демона — по отношению к блокировочному-файлу (не файлу устройства, а блокировачному файлу!) — ЭКСКЛЮЗИВНУЮ-НЕ_БЛОКИРУЮЩУЮ блокировку.
. и в этом случае второй демон просто не сможет запустится.
что за костыли вы какието предлагаете? демон сам себя убивает если видит своего клона — ДЫ ЭТО ОХРЕНЕТЬ МОЖНО какой костыль!
PID-файлы вообще нужны не для того чтобы не было дубликатов демнов. а для других целей.
PID-файлы вообще нужны не для того чтобы не было дубликатов демнов. а для других целей.
Для того, чтобы скрипты знали PID демона?
А для предотвращения повторного запуска lock-файл, так?
Для того, чтобы скрипты знали PID демона?
например если надо какойнить сигнал отправить
хотя да. PID-файл особо то не нужен. например. если есть шина dBus.
А для предотвращения повторного запуска lock-файл, так?
заниматься lock-файлом правда не обязан именно самому демону.
например внутри скрипта по запуску:
ну или вообще использовать SystemD и не париться об блокировачных файлах тогда
Гейтс, залогинся уже! Мы тебя раскусили 🙂
/my_test_lock_file — попробуй много раз подрят позапускай эту строчку. )
# P.S.: вы меня троллите чтоле? я не пойму?
Тут один тролль в треде сделал логичный коммент, а если демон упал, а файл остался. Проверять скриптом, есть ли всё ещё демон?
Забей на него, он тролль =)
Так что, мы пришли к тому, что файлы копятся? Как они потом удаляются?
Гейтс, залогинся уже! Мы тебя раскусили 🙂
если бы я был бы Гейстчом — ябы начал рассказывать что Венде для блокировачных файлов — существует специальная (сугубо виртуальная) файловая система..
. и называются они не «блокировачные файлы» а «именованные мьютексы» 🙂
в генточке об этом может позаботиться start-stop-daemon, насчет других дистров не знаю, может он там тоже есть
Как часть openrc, эту тулзень можно скомпилять подо что угодно. Да и другие варианты есть. В большинстве случаев своё приложение можно даже не учить демонизироваться и делать всякие сопутствующие церемонии, а выполнять это всё start-stop-daemon’ом или аналогом.
Так это не баг, там костыль предложен для неправильного использования. Форкаться для ухода в фон должен start-stop-daemon, а не запускаемый им демон, тогда и с пидфайлом никаких проблем не будет.
Форкаться для ухода в фон должен start-stop-daemon, а не запускаемый им демон..
Если уж доверяешь дело сторонней тулзе, то доверяй целиком. Не доверяешь — велосипедь всё сам. Да и проще так со всех сторон.
Не, требуется просто проконтроллировать, чтобы демон был только один. Есть другие методы?
Создавай unix-сокет или обычный файл с O_CREAT | O_EXCL (man 2 open).
Расширение файла PID
Что это за файл — PID?
PID files are used, for example, to record identifiers for processes that are periodically automatically run.
Файлы PID используются, например, для записи идентификаторов для процессов, которые периодически запускаются автоматически.
Программа(ы), умеющие открыть файл .PID
Mac OS
Linux
Как открыть PID файлы
В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами PID.
Возможные проблемы с файлами в формате PID
Отсутствие возможности открытия и работы с файлом PID, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом Unix Process ID Format. Ниже находится список возможных проблем.
Если Вы уверены, что все перечисленные поводы отсутствуют в Вашем случае (или были уже исключены), файл PID должен сотрудничать с Вашими программами без каких либо проблем. Если проблема с файлом PID все-таки не решена, это может значить, что в этом случае появилась другая, редкая проблема с файлом PID. В таком случае остается только помощь специалиста.
Похожие расширения
Как связать файл с установленной программой?
Есть ли универсальный метод открытия неизвестных файлов?
Многие файлы содержат данные в виде текста или чисел. Возможно, что во время открытия неизвестных файлов (напр. PID) популярный в системе Windows простой редактор текста, которым является Notatnik позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.