关闭开机启动的mlocate的updatedb

2018年4月23日 0 作者 筱枫

今天打开虚拟机,但是运行速度十分之慢,就连ssh也连接了半天才上去,各种命令也响应得非常缓慢,先用top命令查看,cpu占用率很低,大部分时间是在等待io上

接着用iotop命令查看了下io的访问,找到了罪魁祸首updatedb,这是mlocate的数据库更新计划,网上的文章大多是在/etc/cron.daily下删除mlocate这个定时任务,但我是fedora27,在这个目录下并没有mlocate这个文件

于是突发奇想,使用

locate mlocate

其中有两行的结果让人特别在意


/usr/lib/systemd/system/mlocate-updatedb.service
/usr/lib/systemd/system/mlocate-updatedb.timer

然后打开两个文件看了一眼,立马确定这个就是启动的源头,在fedora新版中(不知道其他版本是否也是这样),很多东西已经由systemd接管了,mlocate-updatedb.timer所对应的执行文件就是mlocate-updatedb.service,在mlocate-updatedb.service中,是没有[Install]一栏的,所以无法简单的使用 systemctl enable来实现开机启动,这里面的timer可以替代原本的crond,详情可参考systemd/Timers (简体中文)

然后事情就很简单了


systemctl disable mlocate-updatedb.timer