Installation von Tiny Tiny RSS/Start-Stop-Skript

Aus Synology Wiki
Wechseln zu: Navigation, Suche
#!/bin/sh
#
# starts "Tiny Tiny RSS"ses update daemon
# put it into /usr/local/etc/rc.d/ with the suffix .sh
# chmod 755 on it

PHP="/usr/bin/php"
# This must be changed to the directory you installed Tiny Tiny RSS into.
TTRSS_DIR=/var/services/web/tt-rss
# If you need more logging information, remove --quiet.
DAMON_OPTS=--quiet
WEBUSER=http #nobody for DSM 4.x

# If you need logging information, you can change LOGFILE to another file.
# It must be writable by the user $WEBUSER.
LOGFILE=/dev/null

DM_CMD="$PHP ${TTRSS_DIR}/update.php --daemon $DAMON_OPTS"

getPID ()
{
	ps w|grep "$DM_CMD"|grep -v grep|awk '{print $1}'
	return $?
}

start_daemon () {
	su -m $WEBUSER -c "(trap '' SIGHUP && $DM_CMD >> $LOGFILE 2>&1) &"
	local RES=$?
	if [ $RES -eq 0 ]; then
		echo "`date` - Started daemon" >> "$LOG"
	fi
	return $RES
} 


# It is VERY important that the tabs in the next line are preserved!
cronLine="*	*	*	*	*	root	"`realpath $0`" cron"

case $1 in
start)
	start_daemon
	if [ $? -ne 0 ]; then
		echo "$cronLine" >> /etc/crontab
		synoservicectl --reload crond
	fi
	;;
stop)
	kill `getPID`
	if [ $? -eq 0 ]; then
		echo "`date` - Stopped daemon" >> "$LOG"
	fi
	;;
cron)
	start_daemon
	if [ $? -eq 0 ]; then
		sed -i -e "\\%$cronLine% d" /etc/crontab
		synoservicectl --reload crond
	fi
	;;
status)
	if [ -z `getPID` ]; then
		echo "daemon is not running."
	else
		echo "daemon is running."
	fi
	;;
*)
	echo "Wrong argument. Usage: $0 start|stop|status"
	;;
esac

Links