首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在所有udev规则通过且设备完全初始化后运行脚本

在所有udev规则通过且设备完全初始化后运行脚本
EN

Stack Overflow用户
提问于 2021-01-14 12:27:37
回答 1查看 94关注 0票数 0

连接usb设备后,我正在尝试从该设备读取信息。

我需要的信息是通过两个API访问的: v4l2和libusb。两者都通过脚本使用,该脚本在预期v4l2部件执行时被正确调用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SUBSYSTEM=="usb", ATTRS{idVendor}=="199a", GROUP="video", MODE="0666", TAG+="uaccess", TAG+="udev-acl"

ACTION=="add", SUBSYSTEM=="video4linux", \
               ATTRS{idVendor}=="199a" \
               RUN+="/usr/bin/camera-infos-wrapper %s{serial}"

当我手动运行脚本时,所有步骤都正确执行。我在脚本周围有一个包装器来设置额外的环境变量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env bash

export DISPLAY=":0"
export XAUTHORITY=/home/user/.Xauthority

# sleep 3 <- does not work
# sleep 4 <- works

# ensure debug output is logged
exec 1> >(logger -s -t $(basename $0)) 2>&1

/usr/bin/tcam-index-camera $1

当我睡眠3秒时,libusb无法正确打开设备。睡眠4秒即可正确访问。由于这必须比在PC上运行更多,我更喜欢一个更强大的解决方案。

在所有udev规则都通过并且设备完全初始化之后,有没有办法运行脚本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 09:06:26

要走的路似乎是系统的。

systemd单元camera-index@.service

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Unit]
Description=My service

After=dev-ident%i.device
Wants=dev-ident%i.device

[Service]
Type=forking
ExecStart=/usr/bin/script %i

注意文件名中的'@‘。它很重要,因为它是参数所必需的。

udev规则如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ACTION=="add", SUBSYSTEM=="video4linux", \
               ATTRS{idVendor}=="<vendor id>", \
               TAG+="systemd", \
               SYMLINK+="ident%s{serial}", \
               ENV{SYSTEMD_WANTS}="camera-index@%s{serial}.service"

systemd单元等待,直到创建了symlink,然后执行脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65718937

复制
相关文章
Java 【打印俄文的英文字母】
俄语大写字母: А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я 
Lokinli
2023/03/09
8570
习题 9: 打印,打印,打印
Here are the days: Mon Tue Wed Thu Fri Sat Sun Here are the months: Jan Feb Mar Apr May Jun Jul Aug
hankleo
2020/09/16
1.5K0
习题9:打印打印打印
Here are the days: Mon Tue Wed Thu Fri Sat Sun Here are the months: Jan Feb Mar Apr May Jun Jul Aug There's something going on here. With the three double-quotes.
py3study
2018/08/02
1.5K0
linux删除打印队列中的打印任务lprm命令
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
用户4988085
2021/07/24
3K0
linux删除打印队列中的打印任务lprm命令
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
用户1685462
2021/07/25
2.6K0
linux 删除打印队列中的打印任务 命令:lprm
lprm命令用于删除打印队列中的打印任务。尚未完成的打印机任务会被放在打印机贮列之中,这个命令可用来将常未送到打印机的任务取消。
用户7639835
2021/10/13
2.7K0
逆序打印字符串
s = input("请输入一个字符串:") if len(s) > 31: print("您输入的字符串过长,请重新输入:") else: l = len(s) print("字符串的长度:%d" % l) print(s[::-1])
汪凡
2018/05/29
7430
20190105-打印字母C,H,N,口
*             * *   *        * *     *      * *       *    * *            *
py3study
2020/01/19
6200
Java伪随机数打印任意的字母数字
有这么一段代码,虽然看上去是使用Random类,但可以发现不管怎么运行,结果都是一样的。
sgr997
2022/11/22
8600
习题 8: 打印,打印
1 2 3 4 'one' 'two' 'three' 'four' True False False True '%r %r %r %r' '%r %r %r %r' '%r %r %r %r' '%r %r %r %r' 'I had this thing.' 'That you could type up right.' "But it didn't sing." 'So I said goodnight.'
hankleo
2020/09/16
9820
习题8:打印,打印
1 2 3 4 one two three four True False False True {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} I had this thing. That you could type up right. But it didn't sing. So I said goodnight.
py3study
2018/08/02
7860
centos7删除打印队列中的打印任务lprm命令
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
用户7639835
2021/08/28
4990
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
方法一 通过 ASCII 码判断字母大小写,ASCII在 65-90 之间是大写,97-122 是小写 import java.util.*; public class Application2511 { public static void main(String[] args) { Scanner reader=new Scanner(System.in); System.out.print("请输入一串字符:"); String a=reader.nextLine(); Sy
传说之下的花儿
2023/04/16
6110
如何查找正在等待打印的打印机的打印任务
加菲猫的VFP
2023/08/21
2190
如何查找正在等待打印的打印机的打印任务
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/10
2.3K0
tensorflow: 打印内存中的变量
法一: 循环打印 模板 for (x, y) in zip(tf.global_variables(), sess.run(tf.global_variables())): print '\n', x, y 实例 # coding=utf-8 import tensorflow as tf def func(in_put, layer_name, is_training=True): with tf.variable_scope(layer_name, reuse=tf.AUT
JNingWei
2018/09/28
1.9K0
WinForm中的简单打印
最近工作很是郁闷,有做WEB又要改桌面程序,要求之前基于DevExpress报表打印改成 DataGridView呈现数据 ,配置30分钟提醒用户打印,我发现我是越来越懒了,主要是情绪不好,什么问题 第一反应肯定谷歌之然后自己封装下,无暇思考,万能的谷歌啊
跟着阿笨一起玩NET
2018/09/20
1.5K0
web调用打印机自动打印_网页打印如何设置默认打印机
1. 前言 客户对于一些插件比较敏感,如金融、银行等出于安全的考虑和产品的把控,可能不愿意页面打印的时候,客户端浏览器安装插件。(当然,用户有各种各样的需求和打印格式要求,愿意使用打印控件的,开发的打印功能当然很好。) 所以直接使用浏览器自带的打印功能,就成为一个选择。
全栈程序员站长
2022/11/18
6.5K0
c语言打印字母菱形————用绝对值
打印字母棱形.如键盘上输入F,则屏幕上输出如下棱形:     A        A B       A B C      A B C D     A B C D E    A B C D E F     A B C D E       A B C D         A B C            A B
lop
2019/03/13
1.7K0
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/18
2.2K0

相似问题

如何在c++中打印希腊文字母delta

12

Matlab eps中的希腊文字母\xi问题打印输出

31

打印不在字符串中的字母

41

只打印字符串中的字母

43

打印字符串中不同字母的数目,并打印最常见的字母出现的次数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文