Merge pull request #261 from stefansaraev/dcron-service

dcron: add possibilty to start / stop addon from addon manager with enable / disable
This commit is contained in:
Stephan Raue 2012-03-02 17:55:24 -08:00
commit 2876406ad0
5 changed files with 66 additions and 5 deletions

View File

@ -1,2 +1,5 @@
2.0.2
- add possibilty to start / stop addon from addon manager with enable / disable
2.0
- initial version for dcron 4.5

View File

@ -21,7 +21,7 @@
PKG_NAME="dcron"
PKG_VERSION="4.5"
PKG_REV="1"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.jimpryor.net/linux/dcron.html"

View File

@ -20,10 +20,16 @@
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. /etc/profile
LOCKDIR="/var/lock/"
LOCKFILE="dcron.disabled"
ADDON_NAME="service.system.dcron"
ADDON_DIR="$HOME/.xbmc/addons/$ADDON_NAME"
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/$ADDON_NAME"
if [ ! "$(pidof crond)" ]; then
mkdir -p $ADDON_HOME
if [ ! -d $ADDON_HOME/crontabs ]; then
@ -43,6 +49,15 @@ ADDON_HOME="$HOME/.xbmc/userdata/addon_data/$ADDON_NAME"
export PATH=$ADDON_DIR/bin:$PATH
if [ -z "$(pidof crond)" ]; then
crond -b -l info
# Restart process if it terminates.
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
rm -rf "$LOCKDIR/$LOCKFILE"
fi
while [ true ] ; do
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
break
fi
crond -f -l info
sleep 1
done &
fi

View File

@ -0,0 +1,32 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# 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 OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. /etc/profile
LOCKDIR="/var/lock/"
LOCKFILE="dcron.disabled"
if [ "$(pidof crond)" ]; then
mkdir -p "$LOCKDIR"
touch "$LOCKDIR/$LOCKFILE"
killall -9 crond
fi

View File

@ -22,12 +22,23 @@
import os
import sys
import xbmcaddon
import time
import subprocess
__scriptname__ = "Lightweight cron daemon"
__author__ = "OpenELEC"
__url__ = "http://www.openelec.tv"
__settings__ = xbmcaddon.Addon(id='service.system.dcron')
__cwd__ = __settings__.getAddonInfo('path')
__path__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "dcron.service") )
__start__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "dcron.start") )
__stop__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "dcron.stop") )
os.system(__path__)
#make binary files executable in adson bin folder
subprocess.Popen("chmod -R +x " + __cwd__ + "/bin/*" , shell=True, close_fds=True)
subprocess.Popen(__start__, shell=True, close_fds=True)
while (not xbmc.abortRequested):
time.sleep(0.250)
subprocess.Popen(__stop__, shell=True, close_fds=True)