Що таке .pid файл та що він містить?


199

Нещодавно я натрапив на файл із розширенням .pid та дослідив всередині нього, але не знайшов багато. Документація говорить:

Pid-файл - це файл, що містить ідентифікаційний номер процесу (pid), який зберігається у чітко визначеному розташуванні файлової системи, таким чином, дозволяючи іншим програмам дізнатись, який pid запущеного сценарію.

Чи може хтось пролити про це більше світла або навести мені деталі того, що міститься у файлі pid?

Відповіді:


210

Файли pid містять ідентифікатор процесу (номер) даної програми. Наприклад, Apache HTTPD може записати свій основний номер процесу в pid-файл - який є звичайним текстовим файлом, не більше ніж це - і пізніше використовувати там інформацію, що міститься, щоб зупинитись. Ви також можете використовувати цю інформацію, щоб самостійно вбити процесcat filename.pid | xargs kill


4
Чому б тоді не шукати процес по імені? Навіщо турбуватися з підтримкою .pid-файлів, коли ви можете просто запустити "pidof $ process_name" та отримати ідентифікатор?
Шнацель

14
@Shnatsel: тому що можуть працювати два процеси з цим ім'ям, і вам потрібно знати, який з них відповідає за цей PID-файл. Є й інші причини, більш детальну інформацію можна знайти тут: unix.stackexchange.com/questions/12815/…
користувач4815162342

2
У цьому випадку буде 2 pid-файли, і у вас виникне та сама проблема, що і при пошуку PID. Отже, pidfiles не приносить користі і лише ускладнює речі в цьому сценарії, як і будь-який інший сценарій, про який я можу придумати. Я підозрюю, що вони або з'являлися до procfs, або вони використовувались як інструмент переносимості, оскільки інтерфейси procfs відрізняються, наприклад, Solaris сильно відрізняється від інтерфейсу в Linux.
Шнацель

3
Тільки одне: echo filename.pid | xargs killне вб'є процес. Я думаю, ви мали на увазі: echo $(cat filename.pid) | xargs kill або echo <process ID> | xargs kill.
Олександро де Олівейра,

2
@AlexandrodeOliveira Чи є перевага використання ехо-кота замість просто cat filename.pid | xargs kill?
Саймон А. Егстер

-1

Щоб зрозуміти pid-файли, зверніться до цього DOC

Деколи є певні програми, які потребують додаткової підтримки додаткових плагінів та утиліт. Таким чином, він відслідковує ці утиліти та процес підключення за допомогою ідентифікаторів, використовуючи цей pid-файл для довідки.

Ось чому кожен раз, коли ви перезапускаєте програму, всі необхідні плагіни та залежні додатки повинні бути перезапущені, оскільки pid-файл стане устареним.


8
Ваше перше посилання насправді не відповідає на питання.
Брайан

5
Хоча зв'язаний матеріал теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Toby Speight
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.