当前位置: 首页>>技术教程>>正文


在Ubuntu Linux上,mandb连续运行(在后台运行)是否正常?

, , , ,

问题描述

我可以在我的机构访问Ubuntu Linux节点。节点在组中共享,但是通常我是唯一使用此特定节点的人。

我正在此节点上的所有8个CPU上并行运行计算。我的计算在运行,但是当我使用top查看活动进程时,我看到另一个进程,该进程说用户man和命令mandb。据top称,每次我查看top时,此mandb命令似乎都在运行,并且似乎占用了相当可观的CPU能力(6 %CPU)和内存(2.5 %MEM)。

当我环顾互联网时,似乎:

mandb is used to initialise or manually update index database caches that are usually maintained by man.

那么,为什么mandb始终在该节点上运行? (根据其他节点上的top,我在机构集群中的其他节点上没有此问题。)为什么mandb一直需要运行,因为我目前不在看手册?

此过程是否可能是我可以使用kill安全终止的幻影过程?

最佳答案

mandb连续运行是不正常的。通常,每天在cron作业中运行mandb,以执行维护任务,例如更新已安装手册页的索引以及构建或修整格式化的手册页的缓存。如果您有很多手册页和慢速磁盘,则日常工作应在几秒钟内完成,可能需要几分钟。如果作业的运行时间超过了该时间,则说明存在问题。

6%的CPU并不高,但是该进程可能正在执行磁盘I /O。群集节点上2.5%的内存听起来很高。可能是该作业配置错误并查找了该不应该在的位置,或者mandb程序中存在错误,或者是硬件故障导致mandb卡住。

您可以在/etc/crontab/etc/cron.*/*中观看cron脚本(确切位置是distribution-dependent;可能是/etc/cron.daily/man-db/etc/cron.weekly/man-db)。您可以通过更仔细地查看该进程来了解调用mandb的原因:运行pstree | less并搜索mandb进程。运行ps ww 12345(其中12345是有问题的进程的PID)将显示完整的命令行。

您可能可以自行诊断,但没有root权限就无法修复。如果您确实具有root权限,则可以安全地终止mandb进程(使用命令sudo pkill mandbsu -c 'pkill mandb',具体取决于您成为root的方式)。无论如何,请与系统管理员联系并解释症状。尽可能提供所有信息(例如,什么程序调用了mandb以及带有哪些参数)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11530.html,未经允许,请勿转载。