/usr/bin/vendor_perl/tv_find_grabbers
Added by tim carlin over 9 years ago
I have what appears to be a very subtle configuration problem tvheadend and tv_find_grabbers. The service is running on Arch Linux. If I run tvheadend by hand using the following command as the user root or hts:
/usr/local/bin/tvheadend -f -p /run/tvheadend.pid -C -u hts -g video
everything works fine. In particular I see the following in the log:
2015-04-23 14:19:51.331 [ INFO] epggrab: module xmltv created 2015-04-23 14:19:51.344 [ INFO] spawn: Executing "/usr/bin/vendor_perl/tv_find_grabbers" 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_fi_sv created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_za created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_uk_rt created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_es_laguiatv created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_pt_meo created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_hr created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_na_dd created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_na_dtv created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_eu_egon created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_uk_bleb created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_fr created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_ar created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_huro created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_uk_tvguide created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_ch_search created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_se_swedb created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_dtv_la created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_combiner created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_it created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_fr_kazer created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_na_tvmedia created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_uk_atlas created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_nl created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_eu_epgdata created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_no_gfeed created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_pt created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_se_tvzon created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_tr created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_fi created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_is created 2015-04-23 14:20:00.707 [ INFO] epggrab: module /usr/bin/vendor_perl/tv_grab_il created 2015-04-23 14:20:00.707 [ INFO] xmltv: external socket enabled 2015-04-23 14:20:00.708 [ INFO] epgdb: loaded v2 2015-04-23 14:20:00.708 [ INFO] epgdb: config 1 2015-04-23 14:20:00.708 [ INFO] epgdb: channels 0 2015-04-23 14:20:00.708 [ INFO] epgdb: brands 0 2015-04-23 14:20:00.708 [ INFO] /usr/bin/vendor_perl/tv_grab_na_dd: grab /usr/bin/vendor_perl/tv_grab_na_dd 2015-04-23 14:20:00.709 [ INFO] epgdb: seasons 2 2015-04-23 14:20:00.709 [ INFO] epgdb: episodes 0 2015-04-23 14:20:00.709 [ INFO] epgdb: broadcasts 0 2015-04-23 14:20:00.709 [ INFO] spawn: Executing "/usr/bin/vendor_perl/tv_grab_na_dd"
However if I use the command:
systemctl start tvheadend
the log file shows:
Apr 23 15:24:08 baselinux systemd[1]: Starting tvheadend... Apr 23 15:24:08 baselinux systemd[1]: Started tvheadend. Apr 23 15:24:08 baselinux tvheadend[28625]: main: Log started Apr 23 15:24:09 baselinux tvheadend[28625]: config: loaded Apr 23 15:24:09 baselinux tvheadend[28625]: scanfile: DVB-T - loaded 43 regions with 729 networks Apr 23 15:24:09 baselinux tvheadend[28625]: scanfile: DVB-S - loaded 1 regions with 92 networks Apr 23 15:24:09 baselinux tvheadend[28625]: scanfile: DVB-C - loaded 16 regions with 51 networks Apr 23 15:24:09 baselinux tvheadend[28625]: scanfile: ATSC - loaded 2 regions with 14 networks Apr 23 15:24:09 baselinux tvheadend[28625]: tvhdhomerun: Found HDHomerun device 1051228c with 2 tuners Apr 23 15:24:09 baselinux tvheadend[28625]: tvheadend: Using Network type : ATSC Apr 23 15:24:09 baselinux tvheadend[28625]: tvhdhomerun: Created frontend 1051228C tuner 0 Apr 23 15:24:09 baselinux tvheadend[28625]: tvhdhomerun: Created frontend 1051228C tuner 1 Apr 23 15:24:09 baselinux tvheadend[28625]: dvr: Creating new configuration 'Basic' Apr 23 15:24:09 baselinux tvheadend[28625]: dvr: Creating new configuration '' Apr 23 15:24:09 baselinux tvheadend[28625]: CSA: Using SSE2 128bit parallel descrambling Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module eit created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module uk_freesat created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module uk_freeview created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module viasat_baltic created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module opentv-ausat created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module opentv-skyuk created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module opentv-skyit created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module opentv-skynz created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module pyepg created Apr 23 15:24:09 baselinux tvheadend[28625]: epggrab: module xmltv created Apr 23 15:24:09 baselinux tvheadend[28625]: xmltv: external socket enabled Apr 23 15:24:09 baselinux tvheadend[28625]: epgdb: loaded v2 Apr 23 15:24:09 baselinux tvheadend[28625]: epgdb: config 1 Apr 23 15:24:09 baselinux tvheadend[28625]: epgdb: channels 0 Apr 23 15:24:09 baselinux tvheadend[28625]: epgdb: brands 0 Apr 23 15:24:09 baselinux tvheadend[28625]: epgdb: seasons 495 Apr 23 15:24:09 baselinux tvheadend[28625]: epgdb: episodes 1459 Apr 23 15:24:09 baselinux tvheadend[28625]: epgdb: broadcasts 1689 Apr 23 15:24:09 baselinux tvheadend[28625]: START: HTS Tvheadend version 3.9.2706~gabb1409 started, running as PID:28625 UID:1337 GID:91, CWD:/ CNF:/home/hts/.hts/tvheadend
The tvheadend.service file is:
cat /usr/lib/systemd/system/tvheadend.service [Unit] Description=tvheadend After=tmp.mount network.target [Service] Type=forking PIDFile=/run/tvheadend.pid ExecStart=/usr/local/bin/tvheadend -f -p /run/tvheadend.pid -C -u hts -g video ExecStop=/usr/bin/rm /run/tvheadend.pid Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
When running the server by hand in the web interface for:
Configuration->Channel/EPG->EPG Grabber
the Internal Grabber Module is XMLTV: North America (Data Direct)
however it is Disabled when run using systemctl.
As far as I can tell I don't have a PATH problem as echo $PATH for both root and hts return the same value. And the tv_grab conf file appears to be accessible:
-rw-r--r-- 1 hts video 626 Apr 9 11:53 tv_grab_na_dd.conf
as is the tv_grab executable:
$ ls -l //usr/bin/vendor_perl/tv_find_grabbers -r-xr-xr-x 1 root video 7588 Feb 12 09:43 //usr/bin/vendor_perl/tv_find_grabbers
I'm guessing this is something simple and I'm just not looking at the correct file/path etc.
Any thoughts greatly appreciated!
Tim
Replies (2)
RE: /usr/bin/vendor_perl/tv_find_grabbers - Added by Claudio Khmer1 almost 8 years ago
have you found a solution for the problem?
It is a strange behaviour, I've fixed it creating an hard link to tv_find_grabbers in /usb/bin with the command
ln /usr/bin/vendor_perl/tv_find_grabbers/usr/bin/
and for all the grabbers that You need, eg
ln /usr/bin/vendor_perl/tv_grab_it /usr/bin/
If you do so, tvheadend shows two times all grabbers that You created the link.
Maybe a move command sholud avoid the duplications, but I don't want to move the original file.
It seems that in some file tv_grab_XX are missing following two lines, just after the first line "*#!/usr/bin/perl*":
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
I guess that this is for avoid to execute the command using bash.
Best regards
Claudio
RE: /usr/bin/vendor_perl/tv_find_grabbers - Added by Robert Cameron almost 8 years ago
The problem is the way that Arch does perl. When you log in it properly adds the perl directories to the path. But with services where it is run as a user that doesn't load a .profile the path doesn't get set. You can modify the settings or service file to include the perl directories in your path, or—what I do and was previously mentioned—link the grabbers into /usr/bin.