Forums » Tutorial and setups »
New setup...how to sudo services tvheadend start/stop?
Added by Kelvin Middleton over 11 years ago
Hi, reasonably new to Ubuntu and very new to TVHeadend but am eager to learn.
First thanks for this great solution, I'm up and running very quickly and finding a lot of the community support/articles very useful. One area I'm a little confused over is the start/stop process...
I've followed the wiki guide and downloaded the source and compiled up to and including the "make install" stage. I'm now happily running via a shell with "sudo tvheadend -f -u myacc"...however I'm used to using a command like "sudo service tvheadend start/stop/restart" and want tvh to run automatically on boot/reboot... I've noted others in the forums have cited having a script in /etc/init.d however none was installed as part of my process and whilst I've copied others init.d scripts I've encountered script errors so unsure as to whether there are pre-cursor steps needed.
Please can someone point me in the right direction?
Thanks,
K
Replies (2)
RE: New setup...how to sudo services tvheadend start/stop? - Added by Mark Kirkpatrick over 11 years ago
It's not as formal as /etc/init.d and the services but a simple way to get by until you locate something is edit /etc/rc.local
Mine I added :- HD Homerun user space driver startup
/usr/local/bin/userhdhomerun -f > /var/log/dvbhdhomerun_stdout.log 2> /var/log/dvbhdhomerun_stderr.log - TV Headend startup
/usr/local/bin/tvheadend -f -u root -g video -s -C
RE: New setup...how to sudo services tvheadend start/stop? - Added by Kelvin Middleton over 11 years ago
Hi Mark, thanks for taking the time to review and respond. I located an init.d script from another source so have used that...
cat /etc/init.d/tvheadend #! /bin/sh ### BEGIN INIT INFO # Provides: tvheadend # Required-Start: $local_fs $remote_fs udev # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # Author: Andreas Öman # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/usr/sbin:/usr/bin:/sbin:/bin DESC="Tvheadend" NAME=tvheadend #DAEMON=/usr/bin/$NAME DAEMON=/usr/local/bin/$NAME #DAEMON_ARGS="-f -u hts -g video" DAEMON_ARGS="-f -u _user_ -g video --http_port _customport_ --http_root /tvheadend" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables [ -f /etc/default/rcS ] && . /etc/default/rcS # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started udevadm settle start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac :