Ubuntu 14.10 初始化脚本:在哪里可以找到 shell 函数“clean_all”?

Ubuntu 14.10 初始化脚本:在哪里可以找到 shell 函数“clean_all”?

我刚刚安装了 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

[...]

相关内容