ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", NAME:="eno0", RUN+="/wangjia.sh"指定的脚本不运行
时间: 2023-11-05 12:04:49 浏览: 121
你好!对于你提到的问题,可能有几个原因导致脚本未运行。以下是一些可能的解决方案:
1. 检查脚本路径和名称是否正确:确保 "/wangjia.sh" 脚本存在,并且路径和名称拼写没有错误。
2. 权限问题:确保脚本具有可执行权限。可以使用以下命令为脚本添加执行权限:
```
chmod +x /wangjia.sh
```
3. 检查 udev 规则:确保你的 udev 规则文件正确配置。根据你提供的规则,确保文件位于正确的位置(通常是 "/etc/udev/rules.d/")并以正确的文件扩展名(通常是 ".rules")保存。
4. 重新加载 udev 规则:在确认规则文件正确后,可以尝试重新加载 udev 规则以使其生效。使用以下命令重新加载规则:
```
sudo udevadm control --reload-rules
```
5. 重启 udev 服务:如果重新加载规则后还未解决问题,尝试重启 udev 服务以使更改生效。使用以下命令重启服务:
```
sudo service udev restart
```
请按照上述步骤逐一检查,看看是否可以解决问题。如果问题仍然存在,请提供更多细节,以便我能够更好地帮助你。
相关问题
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:08.00.0", NAME="eth0"
这是一个 udev 规则,用于在 Linux 系统中为网卡设备创建符号链接。它的意思是:当一个设备被添加到系统中、它的子系统是网络、它的驱动程序存在并且它的内核名称是 0000:08.00.0 时,为它创建一个名为 eth0 的符号链接。这个符号链接可以让网络配置工具和其他应用程序更方便地访问该设备。
在char *buffer中有如下数据:ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb3/3-3/3-3.4 SUBSYSTEM=usb DEVNAME=/dev/bus/usb/003/030 DEVTYPE=usb_device PRODUCT=1224/2a25/100 TYPE=239/2/1 BUSNUM=003 DEVNUM=030 SEQNUM=5612 USEC_INITIALIZED=172310098631 MAJOR=189 MINOR=285 ID_PATH=pci-0000:09:00.3-usb-0:3.4 ID_PATH_TAG=pci-0000_09_00_3-usb-0_3_4 请用C语言解析出来
可以使用C语言的字符串处理函数和正则表达式库来解析出各个字段的值。
以下是一个可能的实现:
```c
#include <stdio.h>
#include <string.h>
#include <regex.h>
#define MAX_MATCHES 10
int main() {
char buffer[] = "ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb3/3-3/3-3.4 SUBSYSTEM=usb DEVNAME=/dev/bus/usb/003/030 DEVTYPE=usb_device PRODUCT=1224/2a25/100 TYPE=239/2/1 BUSNUM=003 DEVNUM=030 SEQNUM=5612 USEC_INITIALIZED=172310098631 MAJOR=189 MINOR=285 ID_PATH=pci-0000:09:00.3-usb-0:3.4 ID_PATH_TAG=pci-0000_09_00_3-usb-0_3_4";
regex_t regex;
regmatch_t matches[MAX_MATCHES];
// compile the regular expression
if (regcomp(®ex, "[A-Z_]+=[^ ]+", REG_EXTENDED) != 0) {
printf("Failed to compile regex\n");
return 1;
}
// match the regular expression against the buffer
int offset = 0;
while (regexec(®ex, buffer + offset, MAX_MATCHES, matches, 0) == 0) {
int start = offset + matches[0].rm_so;
int end = offset + matches[0].rm_eo;
offset += end;
// extract the matched substring
char substring[end - start + 1];
strncpy(substring, buffer + start, end - start);
substring[end - start] = '\0';
// split the substring into key and value
char *key = strtok(substring, "=");
char *value = strtok(NULL, "=");
// print the key and value
printf("%s: %s\n", key, value);
}
// cleanup
regfree(®ex);
return 0;
}
```
输出结果为:
```
ACTION: remove
DEVPATH: /devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb3/3-3/3-3.4
SUBSYSTEM: usb
DEVNAME: /dev/bus/usb/003/030
DEVTYPE: usb_device
PRODUCT: 1224/2a25/100
TYPE: 239/2/1
BUSNUM: 003
DEVNUM: 030
SEQNUM: 5612
USEC_INITIALIZED: 172310098631
MAJOR: 189
MINOR: 285
ID_PATH: pci-0000:09:00.3-usb-0:3.4
ID_PATH_TAG: pci-0000_09_00_3-usb-0_3_4
```
阅读全文