如何在启动时在 /var/run 中创建目录?

如何在启动时在 /var/run 中创建目录?

我需要在 /var/run 中创建一个非 root 拥有的目录,/etc/init.d 中的启动脚本将使用该目录。实现此目的的正确方法是什么?我正在使用 Ubuntu 14.04。

答案1

您需要即时执行该操作。/var/run/是一个 tmpfs,因此每次启动时都会重新创建。

从初始化脚本:

  • 在其中创建一个目录/var/run/并将权限更改为该用户。
  • 然后指定使用/var/run/mydaemon而不是/var/run

如果您想要有关如何进行此项检查的示例(还有更多):

/etc/init.d/ssh
/etc/init.d/bind9
/etc/init/dbus.conf
/etc/init/ssh.conf
/etc/init/cups.conf

它们全都包含某种mkdir内容。cups.conf:

mkdir -p /var/run/cups/certs

/etc/init/cups.conf

pre-start script
    [ -x /usr/sbin/cupsd ]

    # load modules for parallel port support
    if [ -r /etc/default/cups ]; then
    . /etc/default/cups
    fi
    if [ "$LOAD_LP_MODULE" = "yes" -a -f /usr/lib/cups/backend/parallel \
     -a -f /proc/modules -a -x /sbin/modprobe ]; then
    modprobe -q -b lp || true
    modprobe -q -b ppdev || true
    modprobe -q -b parport_pc || true
    fi

    mkdir -p /var/run/cups/certs
    if [ -x /lib/init/apparmor-profile-load ]; then
    /lib/init/apparmor-profile-load usr.sbin.cupsd
    fi
end script

相关内容