Project

General

Profile

/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.

    (1-2/2)