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