Bir nedir .pid dosya ve ne içerir?


200

Son zamanlarda .pid uzantılı bir dosya ile karşılaştım ve içinde araştırdım ama fazla bir şey bulamadım. Belgeler diyor ki:

Pid-File, dosya sisteminin iyi tanımlanmış bir konumunda saklanan ve böylece diğer programların çalışan bir komut dosyasının pid'ini bulmasına izin veren işlem kimlik numarasını (pid) içeren bir dosyadır.

Herkes bu konuda daha fazla ışık tutabilir, ya da pid dosyasında ne olduğunu ayrıntıları bana rehberlik edebilir?

Yanıtlar:


211

Pid dosyaları, belirli bir programın işlem kimliğini (bir sayı) içerir. Örneğin, Apache HTTPD ana işlem numarasını - normal bir metin dosyası olan, bundan başka bir şey olmayan - bir pid dosyasına yazabilir ve daha sonra orada bulunan bilgileri kendisini durdurmak için kullanabilir. Ayrıca bu bilgileri kullanarak süreci kendiniz öldürmek için de kullanabilirsiniz.cat filename.pid | xargs kill


4
İşlemi neden isme göre aramıyorsunuz? Neden "pidof $ process_name" komutunu çalıştırıp kimliği alabiliyorsanız .pid dosyalarını korumakla uğraşasınız?
Shnatsel

14
@Shnatsel: çünkü bu adın çalıştığı iki işlem olabilir ve bu PID dosyasından hangisinin sorumlu olduğunu bilmeniz gerekir . Başka nedenler de var, daha fazla ayrıntı burada bulunabilir: unix.stackexchange.com/questions/12815/…
user4815162342

2
Bu durumda 2 pid dosyası olur ve PID aramalarıyla aynı sorunla karşı karşıya kalırsınız. Bu yüzden pidfiles bu senaryoda ve aklıma gelen başka herhangi bir senaryoda iyi ve karmaşık bir şey yapmaz. Procfs yapmadan önce ortaya çıktıklarından ya da taşınabilirlik aracı olarak kullanıldıklarından şüpheleniyorum çünkü procfs arayüzleri örneğin Solaris'de farklı, Linux'takinden oldukça farklı.
Shnatsel

3
Sadece bir şey: echo filename.pid | xargs killsüreci öldürmeyecek. Sanırım demek istedin: echo $(cat filename.pid) | xargs kill ya da echo <process ID> | xargs kill.
Alexandro de Oliveira

2
@AlexandrodeOliveira Yerine sadece yankı ve kedi kullanmanın bir avantajı var mı cat filename.pid | xargs kill?
Simon A. Eugster

0

Pidfile, bir işlemin pid'ini içerir. Uzun süren süreçlerin daha fazla farkında olmalarını sağlayan bir sözleşmedir. Sunucu işlemi kendisini durdurabilir veya diğer örneğinin zaten çalışmakta olduğunu sezgisel olarak inceleyebilir. Pidfiles, riski manuel olarak manüel olarak öldürmek için de kullanılabilir, örn.pkill -F <some.pid>


-1

Pid dosyalarını anlamak için bu DOC'a bakın

Bazı durumlarda, ek eklentilerin ve yardımcı programların ek desteğini gerektiren belirli uygulamalar vardır. Bu nedenle, referans için bu pid dosyasını kullanarak bu yardımcı programları ve eklenti işlemi kimlikleri izler.

Bu nedenle, bir uygulamayı her başlattığınızda, pid dosyası eski olacağından gerekli tüm eklentilerin ve bağımlı uygulamaların yeniden başlatılması gerekir.


8
İlk bağlantınız soruya gerçekten cevap vermiyor.
Brian

5
Bağlantılı materyal teorik olarak soruyu cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak tercih edilir.
Toby Speight
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.