@everyone with Linux knowledge...
What is the different of the two startup script options for ubuntu server:
1: edit file "rc.local" in /etc on linux server which some people advice
2: edit file (named "oscam") in /etc/init.d/ as for example desribed on osacm wiki.
what is the difference Upside/downside for these two types??
Hope someone can explain to get clarification on this option :)
Thanks ahead..
- - - Updated - - -
UPDATED: after more insight knowledge from a linux buddy, i now know that the solution nr. 2 in above post is the best way to get oscam to startup with boot. That's because you make the "oscam" script in /etc/init.d/ to be a linux system service with the command:"sudo update-rc.d oscam defaults" and then it always starts up with your linux system.
script file is attached...remember to rename file to "oscam" and FTP to /etc/init.d/ and chmod to 755. Also your oscam bin file should be in /usr/bin with this script and not /usr/locale/bin.
code in script file:
# OSCam Start/Stop Script
#
### BEGIN INIT INFO
# Provides: OSCam
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable OSCam service.
### END INIT INFO
#
# USER SETUP ###############################################
# ----------------------------------------------------------
# Path to the camd binaries - without trailing slash!
# Example: camd_path='/var/emu'
camd_path='/usr/bin'
# ----------------------------------------------------------
# Path to the camd configuration files - without trailing slash!
# Example: camd_c_path='/var/keys'
camd_c_path='/usr/local/etc'
# ----------------------------------------------------------
# CAMD PROCESS NAME
camd_ps_oscam='oscam'
# ----------------------------------------------------------
# Max time in seconds before sending killall SIGKILL to CAMD - default 5
camd_max_killtime=5
# ----------------------------------------------------------
# CAMD logfile
camd_logfile='/var/log/oscam/oscam.log'
#camd_logfile='/dev/null' # <-- logging off
# ----------------------------------------------------------
# CAMD START COMMAND
camd_start_oscam="$camd_path/$camd_ps_oscam -c $camd_c_path"
# END USER SETUP ###########################################
# PRIVATE VARs *********************************************
hr='------------------------------------------------------------'
# FUNCTIONS ************************************************
fStop() {
echo "$hr" >> $camd_logfile
echo `date`": Stopping $1..." >> $camd_logfile
if ! pidof $1 > /dev/null; then
echo `date`": $1 is not running" >> $camd_logfile
else
echo `date`": Send kill SIGTERM to $1" >> $camd_logfile
kill -15 $(pidof $1) >> $camd_logfile 2>&1
sleep 1
if pidof $1 > /dev/null; then
i=$camd_max_killtime
while expr $i != 0 > /dev/null; do
if pidof $1 > /dev/null; then
echo `date`": Waiting max $i seconds before sending kill SIGKILL to $1..." >> $camd_logfile
else
echo `date`": $1 successfully killed" >> $camd_logfile
break
fi
i=`expr $i - 1`
sleep 1
done
else
echo `date`": $1 successfully killed" >> $camd_logfile
fi
if pidof $1 > /dev/null; then
echo `date`": Sending killall SIGKILL to $1!" >> $camd_logfile
killall -9 $1 >> $camd_logfile 2>&1
fi
fi
}
fStart() {
if pidof $1 > /dev/null; then
fStop $1
fi
echo "$hr" >> $camd_logfile
echo `date`": Starting $1..." >> $camd_logfile
camd_start=$(eval echo \${"camd_start_$1"})
echo `date`": $camd_start" >> $camd_logfile
$camd_start > /dev/null 2>&1 &
sleep 1
if pidof $1 > /dev/null; then
echo `date`": $1 successfully started" >> $camd_logfile
else
echo `date`": Could not start $1!" >> $camd_logfile
fi
}
# BY PARAMETER *********************************************
case "$1" in
'stop')
fStop "$camd_ps_oscam"
;;
'start'|'restart'|'reload')
fStart "$camd_ps_oscam"
;;
*)
msg='Usage: /etc/init.d/oscam {start|stop|restart|force-reload}'
echo "$msg"
echo "$hr" >> $camd_logfile
echo `date`": $msg" >> $camd_logfile
exit 1
;;
esac
exit 0
Display More