ไฟล์. pid คืออะไรและประกอบด้วยอะไรบ้าง


200

ฉันเพิ่งเจอไฟล์ที่มีนามสกุล. pid และสำรวจข้างใน แต่ไม่ค่อยพบมากนัก เอกสารกล่าวว่า:

Pid-File เป็นไฟล์ที่มีหมายเลขประจำตัวของกระบวนการ (pid) ที่เก็บไว้ในตำแหน่งที่กำหนดไว้อย่างดีของระบบไฟล์จึงอนุญาตให้โปรแกรมอื่นค้นหา pid ของสคริปต์ที่ทำงานอยู่

ใครสามารถทำให้กระจ่างเกี่ยวกับเรื่องนี้มากขึ้นหรือแนะนำรายละเอียดของสิ่งที่มีอยู่ในไฟล์ pid

คำตอบ:


211

ไฟล์ pid มี id กระบวนการ (ตัวเลข) ของโปรแกรมที่กำหนด ตัวอย่างเช่น Apache HTTPD อาจเขียนหมายเลขกระบวนการหลักลงในไฟล์ pid - ซึ่งเป็นไฟล์ข้อความปกติไม่มีอะไรมากไปกว่านั้น - หลังจากนั้นใช้ข้อมูลที่มีอยู่เพื่อหยุดตัวเอง คุณยังสามารถใช้ข้อมูลนั้นเพื่อฆ่ากระบวนการด้วยตัวเองโดยใช้cat filename.pid | xargs kill


4
ทำไมไม่ค้นหากระบวนการด้วยชื่อแล้ว? ทำไมต้องกังวลกับการดูแลไฟล์. pid เมื่อคุณสามารถเรียกใช้ "pidof $ process_name" และรับ ID ได้
Shnatsel

14
@Shnatsel เพราะอาจจะมีกระบวนการที่สองที่มีชื่อที่ทำงานและคุณจำเป็นต้องรู้ว่าที่หนึ่งที่อยู่ในความดูแลของที่ไฟล์ PID มีสาเหตุอื่น ๆ รายละเอียดเพิ่มเติมอยู่ที่นี่: unix.stackexchange.com/questions/12815/ …
4815162342

2
ในกรณีนั้นจะมี 2 ไฟล์ pid และคุณกำลังเผชิญปัญหาเดียวกันกับการค้นหา PID ดังนั้น pidfiles จึงไม่ทำสิ่งที่ดีและมีความซับซ้อนเพียงอย่างเดียวในสถานการณ์นี้รวมถึงสถานการณ์อื่น ๆ ที่ฉันสามารถนึกได้ ฉันสงสัยว่ามันจะปรากฏขึ้นก่อนที่ procfs จะทำหรือใช้เป็นเครื่องมือพกพาเพราะส่วนต่อประสาน procfs นั้นแตกต่างกันเช่น Solaris นั้นค่อนข้างแตกต่างจาก Linux
Shnatsel

3
เพียงสิ่งเดียว: echo filename.pid | xargs killจะไม่ฆ่ากระบวนการ ผมคิดว่าคุณหมายถึงหรือecho $(cat filename.pid) | xargs kill echo <process ID> | xargs kill
Alexandro de Oliveira

2
@AlexandrodeOliveira มีข้อได้เปรียบของการใช้ echo และ cat แทนที่จะเป็นเพียงแค่cat filename.pid | xargs kill?
Simon A. Eugster

0

Pidfile มี pid ของกระบวนการ มันเป็นแบบแผนที่ทำให้กระบวนการที่ใช้เวลายาวนานนั้นมีความตระหนักในตนเองมากขึ้น กระบวนการเซิร์ฟเวอร์สามารถตรวจสอบเพื่อหยุดตัวเองหรือฮิวริสติกที่อินสแตนซ์อื่นกำลังทำงานอยู่ Pidfiles สามารถใช้ฆ่าความเสี่ยงด้วยตนเองได้เช่นpkill -F <some.pid>


-1

เพื่อทำความเข้าใจไฟล์ pid ให้อ้างอิงDOCนี้

บางครั้งมีแอปพลิเคชั่นบางตัวที่ต้องการการสนับสนุนเพิ่มเติมสำหรับปลั๊กอินและยูทิลิตีเพิ่มเติม ดังนั้นจึงคอยติดตามยูทิลิตี้เหล่านี้และกระบวนการปลั๊กอินที่ใช้งานรหัสโดยใช้ไฟล์ pid นี้เพื่อการอ้างอิง

นั่นคือเหตุผลที่เมื่อใดก็ตามที่คุณรีสตาร์ทแอปพลิเคชันปลั๊กอินที่จำเป็นทั้งหมดและแอพที่ต้องพึ่งพาต้องเริ่มต้นใหม่เนื่องจากไฟล์ pid จะเก่า


8
ลิงค์แรกของคุณไม่ได้ตอบคำถาม
Brian

5
ในขณะที่เนื้อหาที่เชื่อมโยงในทางทฤษฎีอาจตอบคำถามมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Toby Speight
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.