slurmctld:error: Couldn't find the specified plugin name for cred/munge looking at all files
slurmctld:error: Couldn't find the specified plugin name for cred/munge looking at all files
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在Slurm中,
slurmctld
(系统调用终端守护器)试图找到名为cred/munge
的指定插件,而该插件未被找到。导致此错误的原因可能是以下几个方面:- Plugin路径未正确设置:
在配置Slurm时,
cred/munge
是slurmctl
命令中的一个选项,需要放在pluginpath
环境变量中。如果没有设置正确,或者设置了但是不包含cred/munge
,slurmctl
将无法找到这个插件。
export SLURM_PLUGINPATH=/path/to/plugin
- 插件文件未在正确目录下:
插件通常位于
/etc/slurm.conf
或相关配置文件中,其中包含了Slurm客户端的所有配置项。如果没有找到对应的插件文件,或者找到的文件与预期的版本或路径不匹配,slurmctl
也无法找到它。
ls /etc/slurm.conf | grep -o 'cred/munge'
-
Slurm CLI目录路径不正确:
slurmctl
需要访问Slurm CLI的目录,即/usr/bin/slurm
或/bin/slurm
,但实际路径可能因用户或系统的安装位置不同而异。确保Slurm CLI路径正确,并且包含了cred/munge
选项的命令。 -
Plugin已被禁用或卸载: 如果在插件列表中找不到
cred/munge
,可能是因为已经将其移除了或已禁止了使用。通过检查/etc/services
文件或运行slurmctl status
命令,可以查看是否已有cred/munge
的服务监听特定端口。
grep -o 'cred/munge' /etc/services | awk '{print $5}'
如果是禁用了服务,可以通过
sudo systemctl stop cred/munge
命令停用。- 安装版本冲突或版本不兼容:
由于插件名可能已改变或缺失,Slurm可能会尝试从新安装或更新插件,而不是从旧版升级到新的。确保最新版本的Slurm与
cred/munge
的版本兼容,并通过执行slurmctl list plugins
命令来确认当前的插件版本。
slurmctl list plugins
如果上述步骤都无法解决
slurmctld
无法找到cred/munge
的问题,可能是插件本身不存在,或者存在插件名称冲突、版本不兼容等其他问题。在这种情况下,建议检查cred/munge
的相关配置文件和注册表信息,以及检查是否有其他已存在的同名插件。同时,如果插件版本已经是最新且已手动添加到Slurm配置文件中,那么这可能是插件本身的错误,应联系其开发人员进行修复。在解决此类问题时,具体操作取决于问题的具体情况,包括所使用的系统、安装方式、插件版本和路径、
slurmctl
命令行参数以及本地的配置文件等。如果您有具体的配置文件路径或命令行参数,请提供这些信息以便更准确地定位问题并提供解决方案。在此基础上,您可以使用以下代码示例作为参考,并根据实际情况进行修改和调整:# 检查插件路径是否存在 if [ ! -d "$SLURM_PLUGINPATH" ]; then # 如果不存在,则查找插件名称 PluginPath=$(find /etc/slurm.conf -name "*cred*munge*" | xargs read plugin) # 如果找不到插件,输出错误消息并结束执行 if [ -z "$PluginPath" ]; then echo "Could not find the specified plugin name for cred/munge" exit 1 fi else # 找到了插件路径,加载并检查版本 PluginVersion=$(cat "$PluginPath" | grep "^cred/munge[^\s]" | sed "s/^cred/munge//") # 检查插件版本是否匹配目标版本 if [[ "$PluginVersion" != "$(slurmctl list plugins)" ]]; then echo "Plugin version ($PluginVersion) does not match the target version (latest or the specified version)" exit 1 fi fi # 检查插件状态 if [ ! -e "$PluginPath/services.conf" ]; then # 如果插件尚未注册为服务,创建服务配置文件 touch "$PluginPath/services.conf" cat <<EOF > "$PluginPath/services.conf" [Unit] Description=cred/munge plugin service After=rcfile Environment=PATH=$SLURM_PLUGINPATH:$PATH [Service] Type=forking User=$USER Group=$GROUP ExecStart=/usr/bin/slurm -C /etc/slurm.conf --plugin "$PluginPath" \ --max-retries=3 --retry-timeout=30 --success-mode=ALWAYS --command ["chmod", "+x", "$PluginPath/service"] ExecStop=/usr/bin/schmdt -u $USER -g $GROUP -F /tmp/service.pid -c /etc/slurm.conf -i $PluginPath/services.conf EOF chmod +x "$PluginPath/services.conf" fi # 配置服务注册信息 eval $(cat "$PluginPath/services.conf") # 调试服务启动 systemctl start "$PluginPath"
这段代码首先检查插件路径是否存在,如果不存在则查找插件名称。然后,根据插件名称查找相应的配置文件,并检查其版本是否与所期望的匹配。如果配置文件不存在,或者插件版本不匹配,脚本会创建并配置相应的服务文件。接下来,脚本创建服务注册信息,并使用
schmdt
工具调试服务的启动过程。最后,启动服务并验证其正常工作。需要注意的是,为了确保插件加载成功,你需要根据实际的Slurm配置和插件路径来正确执行上述步骤。如果服务正在运行或已经启动,您可能需要先停止其以避免资源占用。此外,插件名称可能会因为软件包、插件库或官方文档的不同而有所差异,因此在编写此代码之前,您需要确保插件的真实名称符合Slurm官方文档的规定。
如果你有任何额外的需要或疑问,欢迎随时向我提问,我会尽力为你提供详细的解答。在任何情况下,如果你发现使用上述代码执行过程中出现错误,也请提供错误日志或相关的错误截图,以便于我能更好地帮助你诊断和解决问题。
解决 无用评论 打赏 举报 编辑记录- Plugin路径未正确设置:
在配置Slurm时,
悬赏问题
- ¥15 slaris 系统断电后,重新开机后一直自动重启
- ¥15 QTableWidget重绘程序崩溃
- ¥15 51寻迹小车定点寻迹
- ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
- ¥15 关于vue2中methods使用call修改this指向的问题
- ¥15 idea自动补全键位冲突
- ¥15 请教一下写代码,代码好难
- ¥15 iis10中如何阻止别人网站重定向到我的网站
- ¥15 滑块验证码移动速度不一致问题
- ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含