(@Zulakis에게 감사 드리며 Serverfault에 대한 답변은이 답변이 Ubuntu의 지속적인 개발 에 미치지 못했음 을 지적했습니다.)
15.04를 채택함에 systemd
따라 이제 임시 파일 및 이와 같은 디렉토리를 작성하기위한 중앙 집중식 메커니즘이 있습니다. 제거 할 수있는이 방법을 사용하고자하는 서비스 자체의 시작 스크립트에서 명령을 대신 장소 에서 파일을 , 또는 우분투 서비스가 마지막 옵션을 선호하는 것처럼 보이는 함께. 예를 들어, 내 시스템에는 다음이 있습니다.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
.
오래된 사전 시스템 답변 :
시작될 때 개별 서비스에 의해 동적으로 생성 된 것처럼 보입니다.
$ 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 형식은 "지정된 디렉토리의 모든 구성 요소를 작성합니다"라고 말합니다.