Не удалось запустить команду в файле bash при запуске
У меня есть виртуальная машина в EXSI
6.5 и установите 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" &
Его запуск DVBLast запускается с первых 10 секунд сна. Этот файл bash работает нормально.
Но когда я экспортирую ovf template
с этой виртуальной машины и развернуть снова Esxi
и запустите vm, файл 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 ответ
Как указал Симлев, ошибка на самом деле связана с проблемой достижения устройства DVB. При экспорте OVF и повторном импорте на другом хосте в конфигурации виртуальной машины может отсутствовать DVB-тюнер, или он может просто не существовать на другом компьютере. Проверьте конфигурацию скопированной виртуальной машины и убедитесь, что устройство DVB пропущено точно так же, как в исходной виртуальной машине.
Затем войдите в клонированную ВМ и убедитесь, что правила udev не зарезервировали имя устройства DVB от первого esxi, или тюнер на новой ВМ имеет другой адрес устройства, например /dev/dvb/adapter4/frontend0
вместо /dev/dvb/adapter3/frontend0
или, возможно, внешний интерфейс должен быть изменен (например, не тот же INPUT на тюнере, или другое оборудование / модель оборудования)
Я полагаю, что это проблема адреса устройства, а не всего, что связано с самим BASH.