Спиране изцяло не е възможно рестарт се прави само през webinterface. Идеята на daemontools e никога да не ти спира оскама или ако забие да ти го стартира за по малко от секунда.
При BSD се спира с svc -d /service/.... (примерно, или там където е разполойен линка към bin-арито) (svc - controls services monitored by supervise(8)), това заставя demontools-a да НЕ го стартира повторно (d идва от down). Има опция -t (terminate), има и опция -k (kill) -това се ползва за рестарт, убива процеса и ДТ-а веднага го стартира пак. Не знам обаче дали ще повлияят тези опции както тряя на оскама. Опция -u (up) го пуска, ако е бил спрян с -d
аз ползвам тва:
1скрипт
oscript,
#!/bin/sh
CAMNAME="Oscam Server"
# end
# This method starts Oscam
start_cam ()
{
pkill -9 oscam
sleep 2
/usr/local/bin/oscam -b /usr/local/bin &
}
# This method stops Oscam
stop_cam ()
{
pkill -9 oscam
}
case "$1" in
start)
echo "[SCRIPT] $1: $CAMNAME"
start_cam
;;
stop)
echo "[SCRIPT] $1: $CAMNAME"
stop_cam
;;
restart)
echo "Restaring $CAMNAME"
stop_cam
sleep 7
start_cam
;;
*)
"$0" stop
exit 1
;;
esac
exit 0
той спира и пуска кама
2.скрипт check_os
#!/bin/bash
if ! ps x |grep -v grep |grep -c /usr/local/bin/oscam >/dev/null
then
oscript start
echo `date "+%d/%m/%y %R process was not working"` >> /var/log/oscam_restart_log
# This part above will check if there is NO oscam process running.
# And if this condition it truth, it will start it and write to log.
# Log entry will contain time stamp and reason of execution (process not working)
# If first condition in not truth (oscam was running), go further to next condition.
elif
tail -8 /var/log/oscam.log |grep -v grep |grep -c ins40 >/dev/null
then
oscript restart
echo `date "+%d/%m/%y %R ins40 error detected"` >> /var/log/oscam_restart_log
elif
tail -8 /var/log/oscam/oscam.log |grep -v grep |grep -c deadlock >/dev/null
then
oscript restart
echo `date "+%d/%m/%y %R deadlock error detected"` >> /var/log/oscam_restart_log
# Those 2 conditions will look for 2 common errors in Oscam: "ins40" and "deadlock"
# If last 8 lines of your oscam.log contain any of those errors, it will restart oscam.
# Log entries will include the exact reason of restart.
# ins40 error is random error that will keep oscam running but no CWs returned.
# deadlock is older error that appear if you use CCcam protocol in oscam.server
else
echo "ok"
# If oscam passes all conditions and all is OK, it will simply echo "ok"
fi
# ENJOY - supermariocs
и аз го ползвам, ама имам 2 (и един за кешовия процес - съответно пипнат където трябва)
Иха какви са тези дълги заклинания.С fedora съм написах си нещо елементарно и си работи на всякакъв linux.Създал съм си едно файлче с име oscam-watcher.sh с следното съдържание:
#!/bin/bash
if ! ps x |grep -v grep |grep -c oscam-1.20 >/dev/null
then
/var/bin/oscam-1.20
fi
и после в crontab:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
*/1 * * * * /var/bin/./oscam-watcher.sh
Здрасти,
По начало работил ли е добре с daemontools преди това?