(@Zulakis के लिए धन्यवाद और सर्वरफॉल्ट पर एक जवाब जो इंगित करने के लिए है कि यह जवाब उबंटू के चल रहे विकास के साथ नहीं रखा गया था।)
15.04 के systemd
रूप में अपनाने के साथ , अब अस्थायी फ़ाइलों और निर्देशिकाओं के निर्माण के लिए एक केंद्रीकृत तंत्र है जैसे कि ये। एक सेवा इस विधि का उपयोग करने के लिए निकाल सकते हैं बधाई देने के लिए अपने स्वयं के स्टार्टअप स्क्रिप्ट में कमांड और बजाय एक जगह में फ़ाइल , या Ubuntu सेवाओं अंतिम विकल्प पसंद करते हैं करने के लिए प्रतीयमान के साथ,। उदाहरण के लिए, मेरे सिस्टम में अब है:mkdir
.conf
/etc/tmpfiles.d
/run/tmpfiles.d
/usr/lib/tmpfiles.d
$ egrep -r /var/run /usr/lib/tmpfiles.d
/usr/lib/tmpfiles.d/var.conf:L /var/run - - - - ../run
/usr/lib/tmpfiles.d/sudo.conf:d /var/run/sudo 0711 root root
/usr/lib/tmpfiles.d/sudo.conf:D /var/run/sudo/ts 0700 root root
/usr/lib/tmpfiles.d/postgresql.conf:d /var/run/postgresql 2775 postgres postgres - -
/usr/lib/tmpfiles.d/sshd.conf:d /var/run/sshd 0755 root root
/usr/lib/tmpfiles.d/screen-cleanup.conf:d /var/run/screen 0775 root utmp
d
निर्देशिका बनाने का साधन यदि यह पहले से मौजूद नहीं है, तो उसके बाद पथ है, और शेष अनुमतियाँ, उपयोगकर्ता और समूह हैं। इन निर्देशिकाओं की परवाह किए बिना बनाया जाएगा कि क्या संबंधित सेवा कभी शुरू की गई है।
पूर्ण प्रलेखन के लिए, देखें man tmpfiles.d
।
OLD PRE-SYSTEMD ANSWER:
लगता है जैसे वे व्यक्तिगत सेवाओं द्वारा गतिशील रूप से बनाए जाते हैं जैसे वे शुरू करते हैं:
$ sudo egrep -r 'mkdir.*/var/run' /etc
/etc/init.d/ssh: mkdir /var/run/sshd
/etc/init.d/bind9: mkdir -p /var/run/named
/etc/init.d/timidity: mkdir -p /var/run/timidity
/etc/init.d/bzflag: mkdir -p /var/run/bzflag
/etc/init.d/dns-clean:mkdir /var/run/pppconfig >/dev/null 2>&1 || true
/etc/init/winbind.conf: mkdir -p /var/run/samba/winbindd_privileged
/etc/init/dbus.conf: mkdir -p /var/run/dbus
/etc/init/ssh.conf: mkdir -p -m0755 /var/run/sshd
/etc/init/libvirt-bin.conf: mkdir -p /var/run/libvirt
/etc/init/cups.conf: mkdir -p /var/run/cups/certs
मेरा मानना है कि यह वही है जो mysqld को संभालता है:
[ -d /var/run/mysqld ] || install -m 755 -o mysql -g root -d /var/run/mysqld
/lib/init/apparmor-profile-load usr.sbin.mysqld
man install
कहता है कि -d फ़ॉर्म "निर्दिष्ट निर्देशिकाओं के सभी घटकों को बनाएगा"।