小编haf*_*sch的帖子

udev 中 bash 脚本的不同行为

我创建了一个小示例脚本,它是我的真实脚本的简化版本,它看起来基本上如下:

#!/bin/bash

echo "start" > /home/myName/log.txt

#get list with all attached devices
for i in $(lsblk -lo name,fstype,hotplug,type|grep '1 part$'|tr -s ' ' ' '|sed 's/ 1 part$//'|grep ' ..*$'|tr ' ' '_')
do

  echo $i >> /home/myName/log.txt
     
done
Run Code Online (Sandbox Code Playgroud)

如果我直接在终端中调用脚本,则一切正常。所以日志文件中的返回是类似的。

start
sdc1_vfat
Run Code Online (Sandbox Code Playgroud)

但是一旦从 udev 规则调用脚本,循环就不再起作用。日志文件中的输出仅

start
Run Code Online (Sandbox Code Playgroud)

循环不再起作用。

/dev/udev/ 中的规则如下所示

SUBSYSTEM=="usb", ACTION=="add", RUN+="/bin/bash /usr/bin/myScript.sh"
Run Code Online (Sandbox Code Playgroud)

有人知道原因可能是什么吗?


这里有一些更多信息以及建议的基于您的答案的修改版本。

这里是 udev 规则:

# check usb sdb1 plugged unplugged
SUBSYSTEM=="block", ACTION=="add", RUN+="/bin/bash /usr/bin/usb_mount.sh"
SUBSYSTEM=="block", ACTION=="remove", RUN+="/bin/bash /usr/bin/usb_unmount.sh"
Run Code Online (Sandbox Code Playgroud)

安装脚本现在看起来如下:

#!/bin/bash

#general definitions
MNT_PATH="/media/USB_DRIVE"
DEV_ID="sdc1"
    
# check …
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts udev

7
推荐指数
1
解决办法
1471
查看次数

Ubuntu 22.04 - 新创建的屏幕分辨率不可选

我有以下组合:

\n
    \n
  • 处理器 Intel\xc2\xae Core\xe2\x84\xa2 i7-7500U
  • \n
  • 显示 S3422DWG
  • \n
\n

屏幕通过 HDMI 连接。\n此组合可实现的最大分辨率为 3440 x 1440 @ 24Hz。\n此分辨率适用于在另一个分区中运行的窗口。

\n

所以更新到ubuntu 22.04后,无法用xrandr更改分辨率。

\n

这就是我所做的:

\n
cvt 3440 1440 24\n\nreturn\n\n# 3440x1440 23.98 Hz (CVT) hsync: 35.08 kHz; pclk: 153.25 MHz\nModeline "3440x1440_24.00"  153.25  3440 3560 3904 4368  1440 1443 1453 1463 -hsync +vsync\n
Run Code Online (Sandbox Code Playgroud)\n

然后我检查了连接的显示器

\n
xrandr --listactivemonitors\n\nreturn\n\n0: +*XWAYLAND0 1920/800x1080/330+0+0  XWAYLAND0\n
Run Code Online (Sandbox Code Playgroud)\n

我想要更改的屏幕是 XWAYLAND0(主显示屏)

\n

所以我添加了一个新模式

\n
xrandr --newmode "3440x1440_24.00"  153.25  3440 3560 3904 4368  1440 1443 1453 1463 -hsync +vsync\n …
Run Code Online (Sandbox Code Playgroud)

xrandr display multiple-monitors display-resolution

2
推荐指数
1
解决办法
1万
查看次数