2017-07-01 96 views
8

Mam kartę dvb w systemie Ubuntu i napisać plik bash, który pokazuje tuner dvb w gnome-terminal i umieścić plik bash w uruchomieniu, aby uruchomić skrypt po zalogowaniu użytkownika do System jak poniżej:"Odmowa uprawnień" Po uruchomieniu Command On Startup

#!/bin/bash 

# Bash script to show list of bvb tuner 

gnome-terminal --title="list of bvb tuners" -x bash -c "lsdvb; read line" & 

gnome-terminal --title="Tuner 4:" -x bash -c "dvblast -a 4 -f 12596000 -s 27500000 -v 13 -c Tuner4.cfg -i 1 ; read line" & 

lsdvb polecenie z dvb-app repozytorium, które pokazują listę tuner DVB w Linuksie i dvblast to program do transmisji telewizji na żywo.

Wszystko działa dobrze, gdy mam 1 karty DVB na serwerze ... Kiedy dodać drugą karty DVB do serwera i zrestartuj system początku pliku bash ale patrz poniżej błędu na metę dvblast:

For dvblast

a to dla lsdvb:

For lsdvb

i jeśli logowanie w gnome-terminal z sudo -s i ręcznie uruchomić bash plik działa dobrze.

Po usunięciu drugiej karty plik bash działa poprawnie po uruchomieniu.

kładę strace w wierszu poleceń i zobaczyć ten dziennik lsdvb:

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 

     lsdvb: Simple utility to list PCI/PCIe DVB devices 
     Version: 0.0.4 
     Copyright (C) Manu Abraham 
+++ exited with 0 +++ 

i ten dziennik dvblast:

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 +++ 

ktoś może wiedzieć, co się stało, kiedy druga karta dodać do serwera, który plik bash wymaga specjalnego pozwolenia?

+0

Próbowałem wykonać to ręcznie za pomocą 2 kart dvb? – ZeekHuge

+0

edytować pytanie ... po uruchomieniu ręcznie plik bash działa dobrze –

+0

Czy mówi "Odmowa uprawnień" i nic więcej lub czy jest więcej informacji na temat tej linii? –

Odpowiedz

2

Możesz dodać przed komendą np. strace i przekierować wyjście do pliku, aby zobaczyć, co dokładnie się dzieje. Możesz również ustawić auditd do monitorowania /dev/dvb/adapter3/frontend0, aby zobaczyć szczegóły w /var/log/messages.

auditctl -w /dev/dvb/adapter3/frontend0 
+0

Dodaję do zapytania 'strace' log, czy mógłbyś to zobaczyć? –

+0

Czy możesz sprawdzić, czy następujące urządzenie istnieje w/dev? '/ dev/dvb/adapter3/frontend0' Wspomniałeś, że wszystko działa dobrze przez' sudo'. Jakich użyć do uruchomienia tego skryptu? – gbajson

+0

Tak '/ dev/dvb/adapter3/frontend0' istnieje –