first commit
This commit is contained in:
commit
5409acb198
15
README.md
Normal file
15
README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# kodi-standalone-service
|
||||
A simple systemd service file to run kodi in standalone mode.
|
||||
|
||||
## Dependency List
|
||||
* systemd
|
||||
* xorg-server with xorg-xinit
|
||||
|
||||
## Post-install instructions
|
||||
If using xorg version >=1.16 then create /etc/X11/Xwrapper.config containing these two lines:
|
||||
|
||||
allowed_users = anybody
|
||||
needs_root_rights = yes
|
||||
|
||||
## Credit
|
||||
Credit for the service given to the Arch Linux maintainers of the official kodi package.
|
63
common/kodi-standalone2
Executable file
63
common/kodi-standalone2
Executable file
@ -0,0 +1,63 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2009-2013 Team XBMC
|
||||
# http://xbmc.org
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with XBMC; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
|
||||
APP=Kodi
|
||||
prefix="/usr"
|
||||
exec_prefix="/usr"
|
||||
bindir="${exec_prefix}/bin"
|
||||
bin_name=kodi
|
||||
APP="${bindir}/${bin_name} --standalone $@"
|
||||
|
||||
PULSE_START="$(which start-pulseaudio-x11)"
|
||||
if [ -n "$PULSE_START" ]; then
|
||||
$PULSE_START
|
||||
else
|
||||
PULSE_SESSION="$(which pulse-session)"
|
||||
if [ -n "$PULSE_SESSION" ]; then
|
||||
XBMC="$PULSE_SESSION $XBMC"
|
||||
fi
|
||||
fi
|
||||
|
||||
LOOP=1
|
||||
CRASHCOUNT=0
|
||||
LASTSUCCESSFULSTART=$(date +%s)
|
||||
|
||||
while [ $(( $LOOP )) = "1" ]
|
||||
do
|
||||
$APP
|
||||
RET=$?
|
||||
NOW=$(date +%s)
|
||||
if [ $(( ($RET >= 64 && $RET <=66) || $RET == 0 )) = "1" ]; then # clean exit
|
||||
LOOP=0
|
||||
else # crash
|
||||
DIFF=$((NOW-LASTSUCCESSFULSTART))
|
||||
if [ $(($DIFF > 60 )) = "1" ]; then # Not on startup, ignore
|
||||
LASTSUCESSFULSTART=$NOW
|
||||
CRASHCOUNT=0
|
||||
else # at startup, look sharp
|
||||
CRASHCOUNT=$((CRASHCOUNT+1))
|
||||
if [ $(($CRASHCOUNT >= 3)) = "1" ]; then # Too many, bail out
|
||||
LOOP=0
|
||||
echo "${APP} has exited uncleanly 3 times in the last ${DIFF} seconds."
|
||||
echo "Something is probably wrong"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
16
init/kodi.service
Normal file
16
init/kodi.service
Normal file
@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description = Starts instance of Kodi using xinit
|
||||
After = systemd-user-sessions.service network.target sound.target mysqld.service
|
||||
Conflicts=getty@tty7.service
|
||||
|
||||
[Service]
|
||||
User = kodi
|
||||
Group = kodi
|
||||
PAMName=login
|
||||
Type = simple
|
||||
TTYPath=/dev/tty7
|
||||
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/kodi-standalone2 -- :0 -nolisten tcp vt7
|
||||
Restart = on-abort
|
||||
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
Loading…
Reference in New Issue
Block a user