![Ubuntu 14.10 初始化脚本:在哪里可以找到 shell 函数“clean_all”?](https://linux22.com/image/34886/Ubuntu%2014.10%20%E5%88%9D%E5%A7%8B%E5%8C%96%E8%84%9A%E6%9C%AC%EF%BC%9A%E5%9C%A8%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%20shell%20%E5%87%BD%E6%95%B0%E2%80%9Cclean_all%E2%80%9D%EF%BC%9F.png)
我刚刚安装了 Ubuntu 14.10 。我在桌面上最喜欢的一件事是不清除 /tmp 。我试图在 14.10 中执行相同的操作:以防止 /tmp 在启动时被清除。
在启动脚本之一 ( /etc/init.d/mountall-bootclean.sh
) 中,调用了“clean_all”,这会清除 /tmp。现在,我一生都找不到它的定义位置:
% sudo grep -r -w -l clean_all /etc
/etc/init.d/mountall-bootclean.sh
/etc/init.d/checkroot-bootclean.sh
/etc/init.d/mountnfs-bootclean.sh
让我们看看其中之一/etc/init.d/mountall-bootclean.sh
。它开始于:
. /lib/lsb/init-functions
. /lib/init/bootclean.sh
两者都没有定义它。出于沮丧(并配备了 SSD),我尝试了以下方法:
sudo find /bin /boot /etc /lib* /sbin /usr /var -type f -print0 | xargs -0 -s 4096 sudo grep -s -w -l clean_all
结果?它仅存在于以下文件中:
/etc/init.d/mountall-bootclean.sh
/etc/init.d/checkroot-bootclean.sh
/etc/init.d/mountnfs-bootclean.sh
/usr/lib/gimp/2.0/python/gimp.so
/var/log/auth.log
我一定错过了一些非常明显的东西,因为我似乎无法clean_all
在任何地方找到定义!有任何想法吗?
PS:我查了一下,这也不是一个文件
答案1
我完全不确定您正在查看的这些脚本是如何工作的。在查看它们之后,我觉得它们根本无法工作,因为缺少 clean_all 函数;也许它应该存在于 /lib/init/bootclean.sh 中,但该文件在我的 14.10 中不存在。
你应该寻找的是暴发户每次重新启动时清空 /tmp 的工作:
/etc/init/mounted-tmp.conf
启动时调用:
# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.
description "Clean /tmp directory"
start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)
# The "/tmp" here is just a default and is overridden by the "start on"
# case above. It protects someone from running this job directly and
# having no $MOUNTPOINT defined.
env MOUNTPOINT=/tmp
[...]