Linux 脚本中的模块加载/卸载命令

     2023-02-19     9

关键词:

【中文标题】Linux 脚本中的模块加载/卸载命令【英文标题】:Module load/unload commands in Linux scripts 【发布时间】:2019-10-31 03:24:34 【问题描述】:

我经常需要创建包含module loadmodule unload 命令的Linux 脚本。有没有办法在执行module unload 命令之前测试模块是否已经加载?

我需要这样做的原因是,如果我有一个module unload 命令并且有问题的模块尚未加载,那么它将导致错误消息。我想通过测试已经加载的模块来避免这些错误消息,并且只有在这种情况下才卸载它。

【问题讨论】:

man modprobe 是你的朋友。 根据您的评论,您似乎不是指Linux内核模块,而是一种不太常用的软件,我猜是:modules.sourceforge.net,mpcdf.mpg.de/services/computing/software/modules请edit您的问题并添加此信息.请显示您将手动使用的确切命令以及module list 的输出。 加载和卸载命令是'module load '和'module unload 这是模块列表命令的输出:当前加载的模块文件:1) unix/1.0/b 6) questa/10.2c/a 2) ede/1.0/b 7) slickedit/2015/ a 3) lsf/8.0/a 8) synplifypro/j2014.09sp1/a 4) adobereader/9.4-1/a 9) ise-ds/14.7/a 5) git/2.19.1/a 你能准确的知道你使用的模块版本吗(输入module -V)? module 命令在卸载未加载的模块时不会触发并出错 【参考方案1】:

Recent versions of the module command (4+) 有一个名为 is-loaded 的新子命令,无论给定模块是否已加载,它都会返回 true 或 false。

因此,要有条件地从 shell 会话中卸载模块,您可以键入:

module is-loaded $MODULENAME && module unload $MODULENAME

【讨论】:

谢谢,这是我一直在寻找的解决方案。可惜我的版本不支持。【参考方案2】:

假设问题与 Linux 模块无关,而与此软件有关:https://modules.readthedocs.io/en/stable/module.html

grep 模式假定模块名称是module list 输出的第一个单词。当缺少的信息添加到问题中时,这将得到修复。

# example for unloading
MODULENAME=foobar
module list | grep -qw "^$MODULENAME" && module unload "$MODULENAME"
# example for loading
MODULENAME=foobar
module list | grep -qw "^$MODULENAME" || module load "$MODULENAME"

【讨论】:

其实“模块列表”会显示加载的模块列表。我真正想要的是如下内容:if [];然后模块卸载 $MODULENAME fi

内核模块

...nux内核模块文件的命名方式通常为<模块名称.ko>centos7中的内核模块放在/lib/modules/`uname-r`/查看已经加载的内核模块lsmod输出信息分别是模块名称,占用内存大小,是否在使用第三列为0,该模块可以随时卸载非0,则无法执行mod... 查看详情

如何在shell中执行一个模块,这个模块需要传入参数

...头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了。Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序。以上只... 查看详情

linux操作系统中,加载和删除内核模块的命令是啥?

...\x0aLinux命令:modprobe。\\x0d\\x0a功能说明:自动处理可载入模块。\\x0d\\x0a语  法:modprobe[-acdlrtvV][--help][模块文件][符号名称=符号值]。\\x0d\\x0a补充说明:modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depm... 查看详情

linux中u盘和sd卡加载卸载命令

U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda:sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系统的/mnt/udisk1这个目录下,这样我们即可以通... 查看详情

npm常用命令(代码片段)

...模块npmuninstalljquery卸载模块,但不卸载模块留在package.json中的对应信息npmuninstalljquery-g卸载全局模块npmuninstalljquery--save卸载模块,同时卸载留在p 查看详情

modprobe(代码片段)

insmod、rmmod  加载内核模块最简单的方法就是通过insmod命令。它的作用很有限,就是请求内核载入你指定的模块。insmod程序不执行任何依赖性分析或进一步的错误检查。  类似地,卸载一个模块,可以使用rmmod。... 查看详情

内核模块实验奔跑吧linux内核

文章目录​​Debug​​​​可复用Makefile​​​​模块代码​​​​Makefile​​​​执行​​​​验证​​​​加载模块​​​​验证模块是否加载成功——lsmod​​​​验证模块是否加载成功——/sys/modules/*​​​​卸载模块​... 查看详情

linux内核模块中调用shell脚本

...现,写一个linux内核模块,模块加载的时候调用一个shell脚本。参考技术A内核模块是用C语言写的,如果你想开机启动脚本,可以将shell路径写在profile文件中追问不是,我是想在内核模块中调用我的脚本,不是开机启动的时候。 查看详情

从命令行运行python文件不会加载模块(代码片段)

我有一个包含以下模块的Python脚本:fromtkinterimport*fromtkinterimportttkfromtkinterimportfiledialog当我通过按F5在IDLE中运行代码时,脚本运行正常并启动我的应用程序。但是,当我转到命令提示符并键入pythonScannerApp.py我收到以下错误:File"t... 查看详情

linux驱动加载流程分析(代码片段)

...Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸载模块。1.驱动加载1.1静态加载过程将模块的程序编译到Linux内核中,也就是在编译内核时选择Y的模块,静态由... 查看详情

如何卸载新 WooCommerce 2.3.x 加载的 select2 脚本/样式?

】如何卸载新WooCommerce2.3.x加载的select2脚本/样式?【英文标题】:Howtounloadselect2script/stylesloadedbynewWooCommerce2.3.x?【发布时间】:2015-04-1707:52:38【问题描述】:我们是主题开发人员,我们已经在我们的wordpress主题中为HTML中的SELECT框... 查看详情

linux驱动开发-内核模块设计笔记0

内核模块设计1.模块化编程原因:Linux内核庞大,需要大量组件,一起集成会导致镜像文件过大内核模块操作命令:加载:insmodxxx.ko卸载:rmmodxxx.ko查看:lsmod|grepxxx.ko内核模块编程头文件必备#include<lin... 查看详情

centos7内核模块命令

查看所有模块:lsmod查看指定模块的详细信息:modinfo模块名动态加载模块:modprobe模块名动态卸载模块:modprobe-r模块名 查看详情

从命令行运行 python 要求我导入模块

...24【问题描述】:我有一个在Linux上用Spyder(Python3.8)编写的脚本。在Spyder控制台上,脚本运行良好,而我从Linux终端调用它时,它似乎看不到我在脚本中导入的模块。打开我运行的终端:python3/zhome/c9/ 查看详情

PowerShell 5.1 - 如何卸载当前使用的模块

...:2017-07-2608:56:45【问题描述】:我们在一个部署PowerShell脚本中使用了一些PowerShell模块。使用以下命令,我们将模块(即XXXX)安装到“C:\\ProgramFiles\\WindowsPowerShell\\Modu 查看详情

强制 WinDbg 加载已卸载模块的符号

】强制WinDbg加载已卸载模块的符号【英文标题】:ForcingWinDbgtoloadsymbolsofanunloadedmodule【发布时间】:2012-06-1407:37:20【问题描述】:我正在调试一个只有.exe和.pdb没有私有符号的模块。在调试会话期间,我需要检查一个内部结构。... 查看详情

在模块加载/卸载时在外部 C++ 模块中构造/销毁对象

】在模块加载/卸载时在外部C++模块中构造/销毁对象【英文标题】:Constructing/destructinganobjectinexternalc++moduleonmoduleload/unload【发布时间】:2012-08-1915:34:03【问题描述】:我用C++编写了一个python模块。一切正常,但现在我想添加日志... 查看详情

使用java中的jsch在linux中通过sudo命令执行shell脚本以启动服务

】使用java中的jsch在linux中通过sudo命令执行shell脚本以启动服务【英文标题】:Executingashellscripttostartaservicebysudocommandinlinuxusingjschinjava【发布时间】:2016-04-0613:51:21【问题描述】:如何在Linux中通过Java执行shell脚本以通过sudo命令启... 查看详情