Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Problema check oscam script in sh

Nexet

Ist gelegentlich hier
Registriert
25. März 2012
Beiträge
58
Reaktionspunkte
0
Punkte
6
salve , con la paura che l'oscam vada in crash vorrei creare uno script che controlli l'esecuzione di questa ogni tot in modo che nel peggiore caso andasse in crash lo script la riavvii . per rendere l'idea lo script sarebbe uguale al checkcccam.sh nella guida di alberto7 , lo script e questo (funge per la cccam) vorrei convertirlo per la oscam :

#!/bin/bash
CCCAM_CONFIG_FILE_PATH="/var/etc"
CCCAM_EXECUTABLE_PATH="/usr/bin"
NAME_OFF_CCCAM_EXECUTABLE="CCcam.x86"
#
function Check_CCcam {
ps -eo comm,pid,etime > tmpcat
PID=$(grep -i $NAME_OFF_CCCAM_EXECUTABLE tmpcat | awk -F" " '{ print $2}')
TIME=$(grep -i $NAME_OFF_CCCAM_EXECUTABLE tmpcat | awk -F" " '{ print $3}')
}
#
Check_CCcam
if [ "$PID" = "" ]; then
cd $CCCAM_EXECUTABLE_PATH
./$NAME_OFF_CCCAM_EXECUTABLE -C $CCCAM_CONFIG_FILE_PATH/CCcam.cfg

fi
exit 0

ho provato a inserire nelle variabili i percorsi della oscam compreso l'eseguibile ma non funge .
 
AW: check oscam script in sh

l'ho testato ma mi sa che non mi funge , se chiudo la oscam dando il comando kill (e il pid di oscam) poi avvio lo script e mi dice sempre
2
OScam is running
2
OScam is running
2
ma la oscam non funge e la devo avviare a mano, ho modificato anche il percorso del file binario perchè sta in /usr/bin/oscam ma non funge .
gli ho dato anche i permessi di esecuzione ecc. ho anche avviato lo script con sudo .
 
AW: check oscam script in sh

Fai un stop di oscam e posta qui il commando ps aux in spoiler
 
AW: check oscam script in sh

di oscam manco l'ombra , ma lo script dice sempre la solita cosa (is running)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.9 0.2 3760 2052 ? Ss 12:21 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 12:21 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 12:21 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/0:0]
root 5 0.0 0.0 0 0 ? S< 12:21 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/u:0]
root 7 0.0 0.0 0 0 ? S< 12:21 0:00 [kworker/u:0H]
root 8 0.0 0.0 0 0 ? S 12:21 0:00 [migration/0]
root 9 0.0 0.0 0 0 ? S 12:21 0:00 [rcu_bh]
root 10 0.2 0.0 0 0 ? S 12:21 0:00 [rcu_sched]
root 11 0.0 0.0 0 0 ? S 12:21 0:00 [watchdog/0]
root 12 0.0 0.0 0 0 ? S< 12:21 0:00 [cpuset]
root 13 0.0 0.0 0 0 ? S< 12:21 0:00 [khelper]
root 14 0.0 0.0 0 0 ? S 12:21 0:00 [kdevtmpfs]
root 15 0.0 0.0 0 0 ? S< 12:21 0:00 [netns]
root 16 0.0 0.0 0 0 ? S 12:21 0:00 [bdi-default]
root 17 0.0 0.0 0 0 ? S< 12:21 0:00 [kintegrityd]
root 18 0.0 0.0 0 0 ? S< 12:21 0:00 [kblockd]
root 19 0.0 0.0 0 0 ? S< 12:21 0:00 [ata_sff]
root 20 0.0 0.0 0 0 ? S 12:21 0:00 [khubd]
root 21 0.0 0.0 0 0 ? S< 12:21 0:00 [md]
root 22 0.0 0.0 0 0 ? S< 12:21 0:00 [devfreq_wq]
root 23 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/0:1]
root 24 0.0 0.0 0 0 ? S 12:21 0:00 [khungtaskd]
root 25 0.0 0.0 0 0 ? S 12:21 0:00 [kswapd0]
root 26 0.0 0.0 0 0 ? SN 12:21 0:00 [ksmd]
root 27 0.0 0.0 0 0 ? SN 12:21 0:00 [khugepaged]
root 28 0.0 0.0 0 0 ? S 12:21 0:00 [fsnotify_mark]
root 29 0.0 0.0 0 0 ? S 12:21 0:00 [ecryptfs-kthrea]
root 30 0.0 0.0 0 0 ? S< 12:21 0:00 [crypto]
root 41 0.0 0.0 0 0 ? S< 12:21 0:00 [kthrotld]
root 42 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/u:1]
root 43 0.0 0.0 0 0 ? S 12:21 0:00 [scsi_eh_0]
root 44 0.0 0.0 0 0 ? S 12:21 0:00 [scsi_eh_1]
root 45 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/u:2]
root 46 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/u:3]
root 47 0.0 0.0 0 0 ? S< 12:21 0:00 [binder]
root 48 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/u:4]
root 53 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/0:2]
root 68 0.0 0.0 0 0 ? S< 12:21 0:00 [deferwq]
root 69 0.0 0.0 0 0 ? S< 12:21 0:00 [charger_manager]
root 70 0.0 0.0 0 0 ? S 12:21 0:00 [kworker/0:3]
root 196 0.0 0.0 0 0 ? S< 12:21 0:00 [kdmflush]
root 198 0.0 0.0 0 0 ? S< 12:21 0:00 [kdmflush]
root 213 0.0 0.0 0 0 ? S 12:21 0:00 [jbd2/dm-0-8]
root 214 0.0 0.0 0 0 ? S< 12:21 0:00 [ext4-dio-unwrit]
root 305 0.0 0.0 2888 596 ? S 12:21 0:00 upstart-file-bridge --daemon
root 314 0.1 0.0 2892 612 ? S 12:21 0:00 upstart-udev-bridge --daemon
root 318 0.0 0.1 2888 1112 ? Ss 12:21 0:00 /sbin/udevd --daemon
root 332 0.0 0.0 0 0 ? S< 12:21 0:00 [kworker/0:1H]
root 397 0.0 0.0 2884 732 ? S 12:21 0:00 /sbin/udevd --daemon
root 398 0.0 0.0 2884 676 ? S 12:21 0:00 /sbin/udevd --daemon
root 414 0.0 0.0 0 0 ? S< 12:21 0:00 [kpsmoused]
102 576 0.1 0.1 3280 1180 ? Ss 12:22 0:00 dbus-daemon --system --fork
syslog 605 0.0 0.1 30096 1284 ? Sl 12:22 0:00 rsyslogd -c5
root 631 0.0 0.0 0 0 ? S 12:22 0:00 [flush-8:0]
root 632 0.0 0.0 0 0 ? S 12:22 0:00 [flush-252:0]
root 634 0.0 0.2 5532 1860 ? Ss 12:22 0:00 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf
root 661 0.0 0.0 3008 620 ? S 12:22 0:00 upstart-socket-bridge --daemon
root 671 0.0 0.3 6852 2356 ? Ss 12:22 0:00 /usr/sbin/sshd -D
root 700 0.0 0.1 4872 988 ? Ss 12:22 0:00 /usr/sbin/vsftpd
root 817 0.0 0.1 4664 856 tty4 Ss+ 12:22 0:00 /sbin/getty -8 38400 tty4
root 830 0.0 0.1 4664 860 tty5 Ss+ 12:22 0:00 /sbin/getty -8 38400 tty5
root 839 0.0 0.1 4664 852 tty2 Ss+ 12:22 0:00 /sbin/getty -8 38400 tty2
root 842 0.0 0.1 4664 852 tty3 Ss+ 12:22 0:00 /sbin/getty -8 38400 tty3
root 848 0.0 0.1 38424 1460 ? Ssl 12:22 0:00 /usr/bin/CCcam.x86 -v
root 852 0.0 0.1 4664 852 tty6 Ss+ 12:22 0:00 /sbin/getty -8 38400 tty6
root 877 0.0 0.0 2212 616 ? Ss 12:22 0:00 acpid -c /etc/acpi/events -s /var/run/acpid.s
root 884 0.0 0.1 2780 784 ? Ss 12:22 0:00 cron
daemon 885 0.0 0.0 2636 128 ? Ss 12:22 0:00 atd
root 984 0.0 0.1 4664 856 tty1 Ss+ 12:22 0:00 /sbin/getty -8 38400 tty1
whoopsie 997 0.0 0.4 33788 3304 ? Ssl 12:22 0:00 whoopsie
root 1231 0.3 0.4 10188 3332 ? Ss 12:24 0:00 sshd: ubuntu-sky [priv]
root 1237 0.0 0.0 0 0 ? S 12:25 0:00 [kauditd]
root 1239 0.1 0.4 29260 3320 ? Sl 12:25 0:00 /usr/sbin/console-kit-daemon --no-daemon
root 1306 0.0 0.3 24940 2924 ? Sl 12:25 0:00 /usr/lib/policykit-1/polkitd --no-debug
1000 1457 0.1 0.2 10188 1700 ? S 12:25 0:00 sshd: ubuntu-sky@pts/0
1000 1458 0.4 0.4 7428 3524 pts/0 Ss 12:25 0:00 -bash
1000 1645 0.0 0.1 5236 1156 pts/0 R+ 12:26 0:00 ps aux

questo e il mio script

#! /bin/sh
while sleep 3
do
if sudo ps x | grep -v grep | grep -c oscam -b
then
echo "OScam is running"
else
echo `date` "OScam crashed! Restarting OScam." >> /var/log/watchdog.log
/usr/bin/oscam -b
fi
done

per avviare la oscam do il comando /usr/bin/oscam -b e si avvia.
 
Zuletzt bearbeitet:
AW: check oscam script in sh

L´attributi del scipt lai messi a 775? Le configs ce l´hai nella cartella default?
 
AW: check oscam script in sh

sisi ha gia i permessi 775 le configs (oscam.conf oscam.server ecc.) sono in /etc/oscam/
 
AW: check oscam script in sh

allora devi modificare il script cosi /usr/bin/oscam -b -c /etc/oscam/
 
AW: check oscam script in sh

nulla da fare , l'unica cosa che cambia da quando fermo l'oscam è il numero che stampa a video da 4 passa a 2 quando chiudo l'oscam , ma dice sempre is running
4
OScam is running
4
OScam is running
4
OScam is running
4
OScam is running (qua ho chiuso l'oscam)
2
OScam is running
2
OScam is running
2
OScam is running

#! /bin/sh
while sleep 3
do
if sudo ps x | grep -v grep | grep -c oscam -b
then
echo "OScam is running"
else
echo `date` "OScam crashed! Restarting OScam." >> /var/log/watchdog.log
/usr/bin/oscam -b -c /etc/oscam/
fi
done
 
AW: check oscam script in sh

edit , ho provato a testarlo con la cccam (cambiando un paio di righe) e lo script funziona , l'errore sta nel controllo in ps x , vede la oscam sempre in esecuzione
EDIT fose ho capito , quando riavvio il server in automatico mi parte l'oscam però in ps aux ci sono due processi di oscam:
root 836 0.0 0.0 5164 428 ? Ss 13:45 0:00 /usr/bin/oscam -b -c /etc/oscam
root 838 32.2 0.3 9568 2484 ? Sl 13:45 0:04 /usr/bin/oscam -b -c /etc/oscam

non capisco il perchè
 
AW: check oscam script in sh

ah ecco XDD , quindi il problema rimane , uff anche se chiudol'oscam e in ps aux non c'è ombra lo script lo vede ancora di fatti lui vede 4 processi di oscam attivi e io da ps aux ne vedo solo due e quando li chiudo lo script vede altri 2 processi attivi O_O
 
AW: check oscam script in sh

Fai una cosa. Metti il scipt nella rc.local che viene riavviato automaticamente. Poi riavvia il server. Dopo questo vai sul webinterface e vai su shutdown e ammazza :D questa cavola di oscam tramite webif. Aspetta un minuto e poi vedi sel il script va. Dopo massimo 30 secondi il script normalmente dovrebbe attacare e riavviare l´oscam.
 
AW: check oscam script in sh

nulla da fare , mi vede 2 processi in esecuzione di oscam , ho risolto creandomi uno script io un pò diverso , spiego se puo' servire a qualcuno :
avendo lo script che mi permette di visualizzare lo stato della oscam con il comando [FONT=&amp]/etc/init.d/oscam status mi sono andato a creare un check.sh in cui mi ripeteva questo comando tramite ciclo while ogni tot secondi (nel mio caso 10) ,questo check.sh l'ho reso avviabile ad ogni boot tramite rc.local in modo che al riavvio parte il ciclo ogni 10 secondi.
poi mi sono modificato il file oscam che mi oermette di visualizzare lo stato in modo che se la socam non fosse in esecuzione la riavvia .
ecco i due files.

[/FONT]/etc/init.d/oscam[FONT=&amp]

[/FONT]
#!/bin/bash -p
# Start/stop the OScam daemon.
#
### BEGIN INIT INFO
# Provides: oscam
# Required-Start: $syslog $network $pcscd
# Required-Stop: $syslog $network $pcscd
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and Stop OScam
# Description: OScam init script. This script start and stop OScam.
### END INIT INFO

. /lib/lsb/init-functions

NAME="OScam"
DESC="SoftCam emulator"
DAEMON=/usr/bin/oscam
CONFIG_DIR=/etc/oscam
PIDFILE=/var/run/oscam.pid
LOG=/var/log/oscam.log
LOGUSR=/var/log/oscamuser.log
LOGCW=/var/log/cw.log
STARTAS="$DAEMON -- -b -c $CONFIG_DIR"

test -f $DAEMON || exit 0
[ -x $DAEMON ] || exit 0
[ -d $CONFIG_DIR ] || exit 0

clear_file() {
# Clear log and pid file if exists
if [ -e $PIDFILE ]
then
rm -f $PIDFILE
fi

# if [ -e $LOG ]
# then
# rm -f $LOG
# fi

# if [ -e $LOGUSR ]
# then
# rm -f $LOGUSR
# fi

# if [ -e $LOGCW ]
# then
# rm -f $LOGCW
# fi

}


get_status()
{
if start-stop-daemon --start --startas $DAEMON --test \
--name $(basename $DAEMON) --pidfile $PIDFILE >/dev/null
then
echo " - is not running."
/etc/init.d/oscam restart
exit 3
else
echo " - is running."
exit 0
fi
}


start_oscam()
{
# only start oscam if there is no other instance running
if start-stop-daemon --start --startas $DAEMON --test \
--name $(basename $DAEMON) --pidfile $PIDFILE >/dev/null
then
start-stop-daemon --start --quiet --exe $DAEMON \
--name $(basename $DAEMON) --pidfile $PIDFILE --startas $STARTAS
else
echo -n " - seems to be running already"
fi
}

stop_oscam()
{
if start-stop-daemon --stop --retry 30 \
--name $(basename $DAEMON) --pidfile $PIDFILE >/dev/null

then
start-stop-daemon --stop --retry 30 --oknodo --exec $DAEMON >/dev/null
rm -f $PIDFILE
clear_file
else
echo -n " - seems not to be running"
fi
}


case "$1" in

start)
# clear_file
echo -n "Starting $DESC: $NAME"
# start-stop-daemon --start --quiet --exe $DAEMON --pidfile $PIDFILE --startas $STARTAS
start_oscam
echo "."
;;

stop)
echo -n "Stopping $DESC: $NAME"
# start-stop-daemon --stop --quiet --exe $DAEMON
stop_oscam
echo "."
;;

restart)
echo -n "Restarting $DESC: $NAME"
# start-stop-daemon --stop --retry 5 --quiet --exe $DAEMON
# clear_file
# start-stop-daemon --start --quiet --exe $DAEMON --startas $STARTAS
stop_oscam
sleep 2
start_oscam
echo "."
;;

status)

# status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
echo -n "Getting status of $DESC: $NAME"
get_status
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|status}" >&2
exit 2
;;

esac

exit 0
[FONT=&amp]

[/FONT][FONT=&amp]check.sh
#! /bin/sh
while sleep 10
do
/etc/init.d/oscam status
done
[/FONT]
 
Zuletzt bearbeitet:
Zurück
Oben