Di ubuntus baru-baru ini (khususnya, yang paling menarik minat saya adalah 12,04) /var/run
adalah tmpfs, dan dengan demikian saya menganggapnya mulai kosong dengan setiap reboot.
Namun, saya melihat ada beberapa folder, seperti /var/run/mysqld
dan banyak lainnya. Bagaimana folder itu dibuat pada setiap reboot? Apakah ada folder templat yang disalin ke /var/run/
(dan jika demikian, skrip mana yang melakukan itu), atau masing-masing folder mkdir
diedit secara terpisah, atau apa?
EDIT:
Tolong, jangan menjawab yang /var/run
gigih, atau yang /run
gigih. Karena BUKAN.
Bahkan jika demikian pada sistem Anda , itu tidak demikian pada 12,04 biasa.
boot
filesystem
Sandman4
sumber
sumber
Jawaban:
(Terima kasih kepada @Zulakis dan jawaban pada Serverfault karena menunjukkan bahwa jawaban ini tidak mengikuti perkembangan Ubuntu yang sedang berlangsung.)
Dengan adopsi
systemd
pada 15.04 , sekarang ada mekanisme terpusat untuk penciptaan file-file sementara dan direktori seperti ini. Sebuah layanan yang ingin menggunakan metode ini dapat menghapusmkdir
perintah dalam skrip startup sendiri dan bukannya menempatkan.conf
file dalam/etc/tmpfiles.d
,/run/tmpfiles.d
atau/usr/lib/tmpfiles.d
, dengan layanan Ubuntu seakan lebih memilih opsi terakhir. Misalnya, sistem saya sekarang memiliki:The
d
sarana untuk membuat direktori jika tidak sudah ada, setelah itu adalah jalan, dan sisanya adalah hak akses, pengguna, dan kelompok. Direktori ini akan dibuat terlepas dari apakah layanan yang sesuai pernah dimulai.Untuk dokumentasi lengkap, lihat
man tmpfiles.d
.JAWABAN PRE-SYSTEMD LAMA:
Sepertinya mereka dibuat secara dinamis oleh layanan individual saat mereka mulai:
Saya percaya ini adalah yang menangani mysqld:
man install
mengatakan bahwa bentuk -d akan "membuat semua komponen dari direktori yang ditentukan".sumber
/run
Folder baru yang dipasang tmpfs memungkinkan program seperti udev, lvm dan mdadm untuk menyimpan data runtime dari initrd hingga shutdown./var
adalah direktori standar sistem Linux / UNIX - singkatan dari "variabel" dan merupakan tempat di mana banyak log, cahces, TETAPI juga memprogram file pengaturan variabel dan bahkan beberapa database konfigurasi sistem berada.Sebagian besar barang
/var
harus dibersihkan dan diatur dengan benar oleh sistem. File swap Anda untuk memori virtual juga hidup/var
jadi jangan main-main dengan itu./var/run
juga memegang banyak status dan informasi parameter daemon proses yang aktif berjalan.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 dapat memiliki sub-direktori
/var/run
; ini dianjurkan untuk program yang menggunakan lebih dari satu file run-time.Nah karena
/var/run
sudah terpasang sebagai tmpfs. Itu berarti itu benar-benar kosong ketika mesin Anda boot dan itu dimaksudkan seperti ini untuk mencegah hal-hal seperti daemon tidak memulai karena file PID yang tersisa.Skrip startup biasanya membuat direktori yang mereka butuhkan sebelum menggunakannya. Jika Anda ingin menyimpan file PID, masukkan
/var/run
langsung atau buat direktori sebelum membuat file PID. Ini bukan tempat untuk menyimpan data yang perlu tetap ada di seluruh reboot.Sumber: Pathname & Panduan Sistem Administrator Linux
sumber
Bagi siapa saja yang menemukan utas ini karena Anda sedang mencari solusi untuk bagaimana Anda dapat mengkonfigurasi aplikasi sehingga menciptakan direktori
/var/run
sehingga dapat menyimpannya file sock atau pid atau apa pun ... inilah contohnya. Saya menemukan utas ini karena saya ingin menyimpan file kaus kaki MySQL/var/run/mysqld
. Jadi, setelah saya menemukan utas ini, saya mulai mencari di/etc/init
file untuk contoh. dbus itu bagus. Dan, saya datang dengan konfigurasi startup mysql ini:Bagian skrip pra-mulai melakukan trik.
sumber
Sebagaimana didefinisikan dalam Standar Hirarki File ,
/var/run
atau/run
digunakan untuk menyimpan data runtime yang mudah menguap.Semua folder dan file yang dibuat di sana dikelola oleh masing-masing program yang membuat file. Tidak ada yang namanya folder template yang disalin, setiap program dapat menggunakan folder itu untuk menyimpan informasi yang tidak stabil. Data yang disimpan hilang ketika sistem reboot.
Hal yang umum untuk menggunakan
/run
folder adalah menyimpanpid
daemon yang sedang berjalan, file penanda yang berisi nomor proses dari suatu proses. Mereka terutama digunakan untuk skrip start / stop yang dapat Anda temukan misalnya di/etc/init.d/
Saya harap itu membuat segalanya jelas bagi Anda!
br
sumber
Asumsi Anda tidak sepenuhnya benar. Lokasi
/var
folder dapat dinegosiasikan - yaitu, Anda dapat menggunakan partisi atau volume alternatif untuk menemukan/var
folder tersebut. Terlepas dari di mana/var
folder itu berada,/var/run
folder tersebut adalah symlink ke/run
folder dan isinya tetap setelah reboot, meskipun banyak file/run
yang dihasilkan atau dimodifikasi saat boot oleh layanan yang dimulai saat boot. Jadi layanan - sepertimysqld
- yang memanggil untuk memuat file ke/var/run
direktori dan diatur untuk membuat subdirektori jika mereka tidak ada saat ini.sumber
douggro benar sekali, / var / run di-mount sebagai tmpfs, dan / var / run adalah symlink ke / run yang persisten di seluruh reboot, jadi semua yang berjalan / dijalankan juga akan muncul di (dan tetap di) / var / Lari.
Jadi setiap layanan boot seperti mysqld, yang merupakan daemon yang dimulai pada saat boot, yang membuat file dalam / run, juga akan memiliki file yang terlihat di / var / run (symlink ke / run ingat). Jika Anda ingin membuat file yang akan bertahan melalui reboot di / var / run, buat di / run lalu reboot.
Semoga ini menjawab pertanyaan Anda.
sumber
tmpfs
volatile dan perubahan hilang.