Apa itu file .pid dan apa isinya?

199

Baru-baru ini saya menemukan file dengan ekstensi .pid dan menjelajahinya tetapi tidak menemukan banyak. Dokumentasi mengatakan:

Pid-File adalah file yang berisi nomor identifikasi proses (pid) yang disimpan di lokasi sistem file yang terdefinisi dengan baik sehingga memungkinkan program lain untuk mengetahui pid dari skrip yang sedang berjalan.

Adakah yang bisa menjelaskan lebih lanjut tentang ini, atau membimbing saya untuk detail dari apa yang terkandung dalam file pid?

jika itu
sumber

Jawaban:

210

File pid berisi id proses (angka) dari program yang diberikan. Sebagai contoh, Apache HTTPD dapat menulis nomor proses utamanya ke file pid - yang merupakan file teks biasa, tidak lebih dari itu - dan kemudian menggunakan informasi yang ada di sana untuk menghentikannya. Anda juga dapat menggunakan informasi itu untuk mematikan prosesnya sendiri, menggunakancat filename.pid | xargs kill

Rafael Steil
sumber
4
Mengapa tidak mencari proses dengan nama? Mengapa repot-repot memelihara file .pid ketika Anda bisa menjalankan "pidof $ process_name" dan mendapatkan ID?
Shnatsel
14
@Shnatsel: karena mungkin ada dua proses dengan nama berjalan, dan Anda perlu tahu mana yang bertanggung jawab atas yang berkas PID. Ada alasan lain, detail lebih lanjut ditemukan di sini: unix.stackexchange.com/questions/12815/…
user4815162342
2
Dalam hal ini akan ada 2 file pid dan Anda akan menghadapi masalah yang sama dengan pencarian PID. Jadi pidfiles tidak untuk hal yang baik dan hanya mempersulit hal-hal dalam skenario ini serta skenario lain yang dapat saya pikirkan. Saya menduga mereka muncul sebelum procfs melakukannya atau mereka digunakan sebagai alat portabilitas karena antarmuka procfs berbeda pada misalnya Solaris sangat berbeda dari yang ada di Linux.
Shnatsel
3
Hanya satu hal: echo filename.pid | xargs killtidak akan mematikan proses. Saya kira Anda maksud: echo $(cat filename.pid) | xargs kill atau echo <process ID> | xargs kill.
Alexandro de Oliveira
2
@AlexandrodeOliveira Apakah ada keuntungan menggunakan echo dan cat, bukan hanya cat filename.pid | xargs kill?
Simon A. Eugster
0

Pidfile berisi pid dari suatu proses. Ini adalah konvensi yang memungkinkan proses berjalan lama menjadi lebih sadar diri. Proses server dapat memeriksanya untuk menghentikannya sendiri, atau memiliki heuristik bahwa instance lainnya sudah berjalan. Pidfiles juga dapat digunakan untuk membunuh risiko secara manual, misalnyapkill -F <some.pid>

Bartlomiej Antosik
sumber
-1

Untuk memahami file pid, lihat DOC ini

Beberapa kali ada aplikasi tertentu yang membutuhkan dukungan tambahan dari plugin dan utilitas tambahan. Jadi itu melacak utilitas dan proses plugin ini menjalankan id menggunakan file pid ini untuk referensi.

Itu sebabnya setiap kali Anda me-restart aplikasi semua plugin yang diperlukan dan aplikasi yang tergantung harus di-restart karena file pid akan menjadi basi.

Mithun Sasidharan
sumber
8
Tautan pertama Anda tidak benar-benar menjawab pertanyaan.
Brian
5
Sementara materi yang terkait secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Toby Speight