2017-07-01 12 views
8

पर कमान चलाने मैं अपने Ubuntu पर एक dvb कार्ड है और एक बैश फ़ाइल कि gnome-terminal में dvb ट्यूनर दिखाने के बारे में और ऊपर स्क्रिप्ट चलाने के लिए शुरू में पार्टी फ़ाइल डाल जब उपयोगकर्ता लॉगिन करने के लिए नीचे के रूप में सिस्टम:"अनुमति अस्वीकृत" जब स्टार्टअप

#!/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 डीवीबी-एप्लिकेशन रिपोजिटरी से एक आदेश है कि लिनक्स में dvb ट्यूनर की सूची दिखाने के लिए और dvblast प्रसारण लाइव टीवी के लिए एक कार्यक्रम है।

सब कुछ ठीक काम जब मैं सर्वर पर 1 dvb कार्ड है ... जब मैं रन dvblast के लिए सर्वर और पुन: प्रारंभ प्रणाली बैश फ़ाइल शुरू करने के लिए दूसरा dvb कार्ड जोड़ने लेकिन त्रुटि नीचे देखें:

For dvblast

और यह lsdvb के लिए:

For lsdvb

और sudo -s साथ gnome-terminal और मैन्युअल रूप में लॉगिन चलाते हैं बैश फ़ाइल को ठीक काम करें।

दूसरे कार्ड को हटाते समय बैश फ़ाइल स्टार्ट अप पर ठीक काम करती है।

मैं कमांड लाइन में strace रख दिया और 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 +++ 

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

किसी को पता कर सकते हैं क्या हुआ जब दूसरे कार्ड सर्वर में जोड़ देते हैं बैश फ़ाइल को विशेष अनुमति की आवश्यकता है?

+0

इसे 2 डीवीबी कार्ड के साथ मैन्युअल रूप से निष्पादित करने का प्रयास किया? – ZeekHuge

+0

मैं सवाल संपादित करता हूं ... जब मैन्युअल रूप से चलाया जाता है तो बैश फ़ाइल ठीक काम करती है –

+0

क्या यह "अनुमति अस्वीकार" कहती है और कुछ भी नहीं है या उस लाइन पर और जानकारी है? –

उत्तर

2

आप आदेश के सामने i.e. strace जोड़ सकते हैं और एक आउटपुट को फ़ाइल में रीडायरेक्ट कर सकते हैं यह देखने के लिए कि वास्तव में क्या होता है। आप /dev/dvb/adapter3/frontend0 पर निगरानी रखने के लिए auditd भी सेट कर सकते हैं, इसलिए /var/log/messages में विवरण देखेंगे।

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

मैं प्रश्न के लिए 'स्ट्रेस' लॉग जोड़ता हूं, क्या आप इसे देख सकते हैं? –

+0

क्या आप जांच सकते हैं कि निम्न डिवाइस/dev में मौजूद है या नहीं? '/ dev/dvb/adapter3/frontend0' आपने उल्लेख किया कि सब कुछ 'सुडो' के माध्यम से ठीक काम करता है। इस स्क्रिप्ट को चलाने के लिए आप किस यूज का उपयोग करते हैं? – gbajson

+0

हां '/ dev/dvb/adapter3/frontend0' मौजूद है –

संबंधित मुद्दे