[mythtv-users] Gentoo mythfrontend auto-start

Hika van den Hoven hikavdh at gmail.com
Mon Oct 27 19:10:07 UTC 2014


Hoi Phil,

Monday, October 27, 2014, 6:58:34 PM, you wrote:

> I've recently had to rebuild a couple of my (Gentoo) Myth boxes,
> and I'm not sure exactly what I was using for auto-starting
> Mythfrontend.  What scripts are y'all using for this?

I have the following copied from the gentoo-forums and adapted,

in /etc/init.d

#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

depend() {
        use mythbackend
}

start() {

        ebegin "Starting MythTV Frontend"

        eindent

        einfo "Starting mythfrontend"

        start-stop-daemon --start --quiet --background \
                --user ${MYTH_UID} \
                --exec /usr/bin/startx \
                -- -- ${MYTH_XOPTS} vt${MYTH_VT}
        eend $?

        if [ -n "${MYTH_IREXEC}" ]; then

                local name_opt="${MYTH_IREXEC_NAME:+--name ${MYTH_IREXEC_NAME}}"

                einfo "Starting irexec"
                start-stop-daemon --start --quiet \
                        --user ${MYTH_UID} \
                        --exec /usr/bin/irexec \
                        -- --daemon ${name_opt} ${MYTH_LIRCRC}
                eend $?
        fi

        eoutdent
}

stop() {
        ebegin "Stopping MythTV Frontend"

        eindent

        # Make an assumption here: if there are any of these programs running
        # under MYTH_UID, then this script started them, and now needs to kill
        # them.

        if [ "$(pgrep -u ${MYTH_UID} irexec)" ]; then
                einfo "Terminating irExec"
                start-stop-daemon --stop --exec /usr/bin/irexec \
                        --user ${MYTH_UID} --quiet
                eend $?
        fi

        if [ "$(pgrep -u ${MYTH_UID} irxevent)" ]; then
                einfo "Terminating irXevent"
                start-stop-daemon --stop --exec /usr/bin/irxevent \
                        --user ${MYTH_UID} --quiet
                eend $?
        fi

        if [ "$(pgrep -u ${MYTH_UID} mythfrontend.re)" ]; then
                einfo "Terminating MythFrontend"
                start-stop-daemon --stop --name mythfrontend.re \
                        --user ${MYTH_UID} --quiet
                eend $?
        fi

        if [ "$(pgrep -u ${MYTH_UID} mythlogserver)" ]; then
                einfo "Terminating mythlogserver"
                start-stop-daemon --stop --name mythlogserver \
                        --user ${MYTH_UID} --quiet

                eend $?
        fi

        if [ "$(pgrep -u ${MYTH_UID} xclock)" ]; then
                einfo "Terminating X"
                start-stop-daemon --stop --name xclock \
                        --user ${MYTH_UID} --quiet
                eend $?
        fi

        eoutdent
}

in /etc/conf.d

   # User id that all the processes should run as.
   MYTH_UID="mythtv"

   # HOME directory.  Needed to find .xinitrc file and .mythtv directory.
   HOME="/home/${MYTH_UID}"

   # X runs on the first VT available.  At the point this script runs during
   # system start-up, the gettys haven't started yet, so the first available VT is
   # VT2.  Then, when the getty on VT2 starts, it grabs the keyboard away from X.
   # To avoid having to turn off gettys in /etc/inittab, tell X where to find an
   # "unreserved" VT.
   MYTH_VT="7"

   # If there are any other X server options you want to use, set them here.
   MYTH_XOPTS="-nolisten tcp -br"

   # irexec, part of the lirc package, can be used to run commands in response to
   # remote control button presses.  If this variable is set, then irexec will be
   # started and pointed to the appropriate config file.  Leave this blank or null
   # to not start irexec.
   MYTH_IREXEC="yes"

   # Name that irexec is configured to respond to in the lircrc file.
   MYTH_IREXEC_NAME="mythtv"

   # Where irexec can find the lircrc file.
   MYTH_LIRCRC="${HOME}/.mythtv/lircrc"

and ~/.xinitrc

   # .xinitrc
   cd
   [ -x /usr/bin/nvidia-settings ] && /usr/bin/nvidia-settings -l
   /usr/bin/xset s noblank
   /usr/bin/xset s off
   /usr/bin/xset -dpms
   #~/.screenlayout/set-768x576i.sh

   /usr/bin/evilwm \
   -snap 10 -bw 1 \
   -bg rgb:0/0/3fff -fg rgb:0/0/ffff \
   -app xclock/XClock -s \
   -app xterm/XTerm -g 116x41+11+25 \
   -app xmyth/XTerm -v 0 -g 116x39+11+25 \
   -app xstart/XTerm -v 2 -g 116x39+11+25 \
   -app xvnc/XTerm -v 3 -g 116x39+11+25 \
   -app mythfrontend/Mythfrontend -v 0 &

   exec /usr/bin/xterm -name "xmyth" \
   -bg rgb:0/0/3fff \
   -fg rgb:ffff/ffff/ffff \
   -e ~/.scripts/StartMyth.sh &

   exec /usr/bin/xterm -name "xstart" \
   -xrm "XTerm.vt100.allowSendEvents: true" \
   -bg rgb:0/0/3fff \
   -fg rgb:ffff/ffff/ffff \
   -e /bin/bash &

   exec /usr/bin/xterm -name "xvnc" \
   -bg rgb:0/0/3fff \
   -fg rgb:ffff/ffff/ffff \
   -e ~/.scripts/StartVnc.sh &

   exec xclock -digital -padding 2 -norender -g -0+0 \
   -bg rgb:0/0/3fff \
   -fg rgb:ffff/ffff/ffff

and StartMyth.sh

#!/bin/bash
while true; do
        /usr/bin/mythfrontend --syslog local7
        read x
        clear
done

The clock is this way the X-closing application. Running the frontend
from an Xterm makes the log with an Alt-tab visible. The loop lets me
easily restart. (Actually it has a whole menu with reboot, hibernate
etc. options). The vnc script has a similar loop to restart it. The
extra xterm is there in place of a normal text terminal. The TV is
interlaced vga to scart, so I can't get a normal console other than
ssh.

Tot mails,
  Hika                            mailto:hikavdh at gmail.com

"Zonder hoop kun je niet leven
Zonder leven is er geen hoop
Het eeuwige dilemma
Zeker als je hoop moet vernietigen om te kunnen overleven!"

De lerende Mens



More information about the mythtv-users mailing list