启动时无法运行 bash 文件中的命令

启动时无法运行 bash 文件中的命令

我有一个 6.5 版的虚拟机EXSI,并在其上安装了 Ubuntu。我编写了一个 bash 文件来在启动时运行以下命令:

#!/bin/bash

# Bash script to dvblast

sleep 10

gnome-terminal --title="foo" -x bash -c \
"printf '\e[8;13;90t'&&dvblast -a 3 -f 12596000 -s 27500000 -v 13 -c Tuner4.cfg -i 1; read line" &

它的运行电视广播启动时先休眠 10 秒。此 bash 文件工作正常。

当我ovf template从该虚拟机导出并再次部署Esxi并启动虚拟机时,bash 文件无法运行没有权限.这是输出窗口图像:

输出

当我运行该命令时strace看到以下日志:

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
DVBlast 2.2 (release)
warning: restarting
open("/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
open("/usr/lib/x86_64-linux-gnu/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3
debug: using linux-dvb API version 5
open("/dev/dvb/adapter3/frontend0", O_RDWR|O_NONBLOCK) = -1 ENOENT (No such file or directory)
error: opening device /dev/dvb/adapter3/frontend0 failed (No such file or directory)
+++ exited with 1 +++

如果我运行终端并运行sudo -s,然后运行 ​​bash 文件,它可以正常工作。

有人知道我该如何解决这个问题吗?提前谢谢

答案1

正如 simlev 指出的那样,错误实际上是关于到达 DVB 设备的问题。当导出 OVF 并在另一台主机上再次导入时,VM 的配置可能省略了 DVB 调谐器,或者它可能根本不存在于另一台机器上。检查复制的虚拟机的配置,并确保 DVB 设备与源虚拟机中的配置完全相同。

然后登录到克隆的虚拟机,并检查 udev 规则是否没有保留来自第一个 esxi 的 DVB 设备的名称,或者新虚拟机上的调谐器是否有另一个设备地址,而不是 /dev/dvb/adapter4/frontend0/dev/dvb/adapter3/frontend0或者也许必须更改前端(例如,调谐器上的 INPUT 不是相同的,或者是不同品牌/型号的硬件)

我相信这是设备问题,而不是与 BASH 本身相关的问题。

相关内容