我需要在 /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