2017-07-01 6 views
8

Ich habe eine DVB-Karte auf meinem Ubuntu-System und schreibe eine Bash-Datei, die DVB-Tuner in gnome-terminal zeigen und die Bash-Datei in den Start zu starten, um das Skript bei der Benutzeranmeldung zu starten wie unten System:"Berechtigung verweigert" Beim Ausführen Befehl beim Start

#!/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 ein Befehl von dvb-App-Repository, das Liste der DVB-Tuner in Linux zeigen und dvblast ist ein Programm für die Übertragung von Live-TV.

Alles funktioniert gut, wenn ich habe 1 dvb-Karte auf dem Server ... Wenn ich hinzufügen zweite DVB-Karte an dem Server und Neustart-System des Start bash-Datei, aber siehe unten Fehler für Lauf dvblast:

For dvblast

und das für lsdvb:

For lsdvb

und wenn Login in gnome-terminal mit sudo -s und manuell ausführen die Bash-Datei funktioniert gut.

Beim Entfernen der zweiten Karte funktioniert die bash-Datei beim Start gut.

Ich habe strace in der Befehlszeile und sehen Sie dieses Protokoll für 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 +++ 

und dieses Protokoll für 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 +++ 

Könnte jemand wissen, was passiert, wenn die zweite Karte zum Server hinzufügen, dass Die Bash-Datei benötigt spezielle Erlaubnis?

+0

Versuchte es manuell mit 2 DVB-Karten? – ZeekHuge

+0

Ich bearbeite die Frage ... wenn sie manuell ausgeführt wird, funktioniert die Bash-Datei gut –

+0

Sagt es "Berechtigung verweigert" und nichts anderes oder gibt es mehr Informationen in dieser Zeile? –

Antwort

2

Sie können z. B. strace vor dem Befehl hinzufügen und eine Ausgabe an eine Datei umleiten, um zu sehen, was genau passiert. Sie können auch auditd auf /dev/dvb/adapter3/frontend0 überwachen, so sehen Sie die Details in /var/log/messages.

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

Ich füge 'strace' Log zur Frage hinzu, könntest du das bitte sehen? –

+0

Können Sie überprüfen, ob das folgende Gerät in/dev existiert? '/ dev/dvb/adapter3/frontend0' Sie haben erwähnt, dass alles funktioniert durch' sudo'. Welche verwendet Sie zum Ausführen dieses Skripts? – gbajson

+0

Ja '/ dev/dvb/adapter3/frontend0' vorhanden –

Verwandte Themen