Linux - tempat-tempat alternatif untuk menyimpan file pid, bukan / var / run
21
Seperti yang tertulis dalam judul, di mana saya harus membiarkan skrip init menulis file pid? apakah ada jalur standar yang harus saya pilih daripada / var / run?
Bisakah / tmp menjadi tempat yang baik untuk menyimpannya atau ada kekurangannya?
Direktori ini berisi data informasi sistem yang menggambarkan sistem sejak sistem di-boot. File di bawah direktori ini harus dihapus (dihapus atau dipotong seperlunya) di awal proses boot. Program mungkin memiliki subdirektori dari / var / run; ini dianjurkan untuk program yang menggunakan lebih dari satu file run-time. [catatan kaki 37]
Dan fitur yang diinginkan adalah sebagian besar distro membersihkannya secara otomatis (tidak seperti /tmpyang tidak dibersihkan saat boot di beberapa distro) - ini menghindari file pid basi:
Lokasi normal untuk pidfiles adalah / var / run. Sebagian besar unices akan membersihkan direktori ini saat boot; di bawah Ubuntu ini dicapai dengan / var / menjalankan sistem file dalam memori (tmpfs).
Itu pilihan Anda di mana menyimpannya, tapi saya akan pergi dengan standar.
Jika Anda tidak memiliki akses ke /var/run, Anda harus menyimpan file pid di direktori home pengguna, misalnya ~/.my_app.pid.
Jika akses tulis non-root ke /var/runyang Anda butuhkan, maka perhatikan bahwa ada subdirektori di /var/run/useruntuk pengguna individu. Anda hanya perlu mendapatkan UID dari pengguna saat ini:
Jawaban:
Singkatnya : Anda dapat menyimpannya di mana saja (katakanlah,
/tmp
atau/var/tmp
), tetapi/var/run
merupakan standar yang disukai./var/run
adalah standar hirarki sistem file :Dan fitur yang diinginkan adalah sebagian besar distro membersihkannya secara otomatis (tidak seperti
/tmp
yang tidak dibersihkan saat boot di beberapa distro) - ini menghindari file pid basi:Itu pilihan Anda di mana menyimpannya, tapi saya akan pergi dengan standar.
Jika Anda tidak memiliki akses ke
/var/run
, Anda harus menyimpan file pid di direktori home pengguna, misalnya~/.my_app.pid
.sumber
Jika akses tulis non-root ke
/var/run
yang Anda butuhkan, maka perhatikan bahwa ada subdirektori di/var/run/user
untuk pengguna individu. Anda hanya perlu mendapatkan UID dari pengguna saat ini:/var/run/user/[$uid]
sumber