小编Omi*_*989的帖子

如何等待复制过程(cp)完成?

我希望我的 RPi 2(使用MiniBian(基于 Debian 的Raspbian操作系统的最小版本)作为其操作系统)在检测到插入了 USB 闪存时执行脚本。所以这就是我所做的:

/etc/udev/rules.d/10-usbstick.rules用这些内容创建:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*" SYMLINK+="usbflash", RUN+="/path/to/myscript.sh"
Run Code Online (Sandbox Code Playgroud)

然后/path/to/myscript.sh用这些内容创建:

#!/bin/bash

mount /dev/usbflash /mnt/

service omxd stop

rm -r /path/to/myfolder/*
cp -f /mnt/*.mp4 /path/to/myfolder/
cp -f /mnt/*.avi /path/to/myfolder/

sleep 1
umount /dev/usbflash

halt
Run Code Online (Sandbox Code Playgroud)

现在,当我插入 USB 闪存时,它会识别它,安装它,停止omxd守护进程并删除所有旧文件。

但问题是它halt在复制所有文件之前关闭 ( )。后来查了一下,发现只有1个文件被复制了,而且没有被正确复制,就像halt在复制过程中执行了命令一样。

所以,我决定使用waitcommand 来确保halt命令只在最后执行。我编辑的/path/to/myscript.sh文件是这样的:

#!/bin/bash

mount /dev/usbflash /mnt/

PID1 = $!
wait PID1

service omxd stop

rm -r /path/to/myfolder/* …
Run Code Online (Sandbox Code Playgroud)

process cp shell-script raspberry-pi

5
推荐指数
2
解决办法
7044
查看次数

如何通过 SSH 向 fbi 发送命令?

fbi用来显示一些图像。fbi有一些键盘控制,如+-Page UpPage Down,等来控制图像。

我不想使用键盘,而是想通过 SSH 将这些控制命令发送到fbi.

我已经尝试过以下方法:

mkfifo /tmp/mycmd
fbi /myfolder/*.jpg < /tmp/mycmd &
Run Code Online (Sandbox Code Playgroud)

这样做后,fbi不启动。我尝试发送一些命令,例如echo . > /tmp/mycmd,但它没有启动;并给出以下错误:

using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
ioctl VT_GETSTATE: Inappropriate ioctl for device (not a linux console?)
Run Code Online (Sandbox Code Playgroud)

问题是什么?

如何fbi通过 SSH发送命令!?

ssh framebuffer command fifo fbi

3
推荐指数
2
解决办法
7447
查看次数

标签 统计

command ×1

cp ×1

fbi ×1

fifo ×1

framebuffer ×1

process ×1

raspberry-pi ×1

shell-script ×1

ssh ×1