Sie sind hier : Homepage →  > Linux (12) Technik des NAS-540→  > Einblick in ein NAS-542 OS→  2. Start-Script "rcS2"

Diese Seiten sind unsere internen Protokolle aus dem Labor.

Aufgrund der fortlaufenden Protokollierung der Ergänzungen sowie der Verbesserungen ist die Reihenfolge / Chronologie der Seiten aus dem Ruder gelaufen - leicht durcheinander geraten.

.

Auch das hier ist eine Info-Datei, kein Script mehr

Das Script "scR2" mit ursprünglich 26 Kilobyte ist natürlich auch nur die Vorlage für diesen Text. Diese Datei hier können Sie nicht mehr als Script laufen lassen, da viele Kommentare nicht auskommentiert sind. Es geht um das Verstehen der Ablauf-Reihenfolge.
.

rcS2 - 2.Start-script in "/ram_bin/etc/init.d"

.
#!/bin/sh
.

  • # Zuerst mal die Info, dieses 2. Start-Script wird vom 1. Start-Script "rcS" aufgerufen

  • # NOTE: This script initializes almost all system services on HDD (Hard-Disk-Drive).
  • # warum jetzt "/etc/profile" nochmal (nach-)geladen wird, ist noch nicht klar. Es hatte sich doch nichts geändert - so werden die ursprünglichen Variablen nochmal gesetzt. Evtl. wird dieses 2. Start-Script auch irgendwo separat (einzeln) aufgerufen ? Habe es aber noch nicht gefunden.


. /etc/profile

  • # Some environment settings should sync with rcS

.
SYSPATH="${IMG_PATH}"
.

  • # Set system path - #Some path is refined - Völlig unklar ist - wer hatte "/i-data/" im root auf der RAM-Disk angelegt und wo kommt "/e-data/" her? Dieses verzeichnis in der RAM-Disk muß beim entpacken der system-Datei angelegt worden sein.

.

Das für uns wichtige Verzeichnis /i-data/ ist jetzt da.

Darum ist das Verstehen dieses in der RAM-Disk angelegten Verzeichnis für unsere Ziele von essentieller Bedeutung. Nur auf der ersten Festplatte werden Änderungen und Ergänzungen von Programmen abgelegt. Alle anderen Änderungen im RAM sind flüchtig. Hinter /i-data/ werden bzw. sind dann später alle Festplatten und sonstigen Seicher "gemounted". Noch ist es nur ein Verzeichnis.

.

Hinter "/i-data/" ist (sind) die Festplatte(n) "gemounted".

.
SYSTEM_PATH="/i-data/.system"
.

  • Hier wird ja erstmal nur diese Variable gesetzt, weiter nichts. Das Verzeichis selbst hatte ich vorher nicht gesehen. Und wo diese beiden folgenden Variablen mal gebraucht wurden, steht auch nirgendwo. Sie sind auch auskommentiert.

.
#ZYXEL_PATH="/i-data/md0/.zyxel"
#ZYXEL_LINK="/i-data/.zyxel"
.

Das Verzeichnis "/i-data/" wird jetzt weiter verlinkt

.

  • Das Verzeichnis "/i-data/" ist für uns deshalb so wichitg, weil über dieses Verzeichnis die erste HDD Disk-1 eingebunden ist und nur über dieses Verzeichnis !

.

  • # Get the model id - wird das hier von Hand eingetragen ? Wo kommt "MRD_MODEL" her ?


MODEL_ID=`${MRD_MODEL} -p`
KERNEL_VERSION="3.2.54"

${ECHO} "Start rcS2 of ZyXEL style"

${ECHO} -e "\033[031m*** Stage 3: Start services on HDD ***\033[0m"

  • # Prepare "i-data" & "e-data"; the following actions must do after /etc is prepared. Das Verzeichnis "/etc" ist auch in der RAM-Disk.

  • #mark it because path "/i-data/md0" refined

.
/bin/ln -s /etc/zyxel/storage/sysvol /i-data/sysvol
.

  • #mark it because we use build-in functions instead of modules for now ?? wieso ??

.

Wann wurde der eigentliche Zyxel-Kernel gestartet ?

.

  • Das Kommando "insmod" bindet ein Modul in einen laufenden Kernel ein.

.
insmod /lib/modules/${KERNEL_VERSION}/kernel/fs/ntfs/ntfs.ko
insmod /lib/modules/tntfs.ko

insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/slip/slhc.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_generic.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_mppe.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_synctty.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_async.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/ppp_deflate.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/pppox.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/pppoe.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/ppp/bsd_comp.ko

insmod /lib/modules/${KERNEL_VERSION}/kernel/crypto/ocf/ocf.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/crypto/ocf/cryptosoft.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/crypto/ocf/cryptodev.ko
insmod /lib/modules/${KERNEL_VERSION}/kernel/drivers/epn1802-ocf/m86xxx_elp.ko
.

  • # modprobe fuse  ??????? warum auskommentiert ??

  • # Nachtrag-Erklärung : HTP - htp is an HTML pre-processor. (htp works by processing special HTML files and producing as output regular HTML files ready to be served up.)

  • # Sleep a little bit so that all devices can be detected.

.
sleep 3

# HTP may umount /etc/zyxel if doing flash r/w test, need to mount /etc/zyxel back if neccesary

${CAT} /proc/mounts | grep "/etc/zyxel" > /dev/null

  • Jetzt wird die Partition "mtdblock4" aus dem NAND-flash ins aktuelle RAM-DISK Filesystem eingebunden


if [ $? != 0 ] ; then
    echo "HTP finished, re-mount /etc/zyxel"
    #mount -t jffs2 /dev/mtdblock4 /etc/zyxel
    ubiattach -m 3 -d 3
    mount -t ubifs ubi3:ubi_config /etc/zyxel
fi
.

  • # This will force the automatic test machine to reboot the device,
  • # Note the string sould be exactly the same with "Press ENTER to continue..."

.
echo "Press ENTER to continue..."
.

  • # eine unsinnige Meldung ??, weil die Antwort gar nicht abgefragt wird

.

  • #The following three daemon are necessary for login through http or ftp
  • ##### zylogd

.
${RM} -rf /var/run/zylogd.pid

if [ -x /usr/sbin/zylogd ]; then
    ${ECHO} "Starting zylogd..."
    /usr/sbin/zylogd
fi

  • ##### syslog-ng

#start at zyshd:zysh_logging.c:restart_syslog
#if [ -x /usr/sbin/syslog-ng ]; then
#    ${ECHO} "Starting syslog..."
#    /usr/sbin/syslog-ng
#fi

  • #### UAM


${RM} -f /var/run/uamd.pid

if [ -x /usr/sbin/uamd ]; then
    ${ECHO} "Starting uamd..."
    /usr/sbin/uamd
fi

  • #create a read-write dir for apache


mkdir -m 755 /var/log/httpd

  • ##### Application, Daemon
  • ##### Restore to default password file and etc


/sbin/account.sh

  • ### CUPS must before zysh.sh


/bin/nice -n 17 /usr/sbin/cupsd
.

  • Das "Web Server Gateway Interface" (WSGI) ist eine Schnittstellen-Spezifikation für die Programmiersprache Python.

.
${ECHO} "Starting WSGI server..."
/etc/init.d/main_wsgi.sh start

  • ### Load PyConf for User###


if [ ! -f /etc/zyxel/py_conf ]; then
    cp -a /usr/local/apache/web_framework/data/config/py_conf_default /etc/zyxel/py_conf
fi

chmod 0777 /etc/zyxel/py_conf

  • #copy py_conf from flash to ram for reducing flash write times.


cp -a /etc/zyxel/py_conf /var/web_framework/

  • #start to check add new configurations of py_conf


/usr/bin/python /usr/local/apache/web_framework/lib/bootsup.pyc

  • #execute expand or repair continue if NAS reboot.


/usr/bin/python -c "from models import storage_main; storage_main.MainResize2fsIfNeed()" &
/usr/bin/python -c "from models import storage_main; storage_main.MainRepairRaidIfNeed()" &

  • ##### ZySH daemon & client


${ECHO} "No more ZySH daemon and client..."

/usr/sbin/zylog_no_logging syslog 1

  • # make console accessible for everyone to write log


chmod 666 /dev/ttyS0

  • ##### Web Server


/usr/sbin/chUrlPrefix.sh setprefix
/usr/bin/python /usr/local/apache/web_framework/models/zylog_main_model.pyc

  • # enlarge max_user_watches to get more watch folders, the default is 8192
  • # must to enlarge max_user_watches before zypkg startup because myZyXELcloud-Agent uses inotify


echo "131072" > /proc/sys/fs/inotify/max_user_watches

  • #start package httpd early because of the fixed ports
  • # prepare zypkg


/etc/init.d/zypkg_controller.sh prepare_env

  • # start-up zypkgs


if [ "$?" = "0" ]; then
    /etc/init.d/zypkg_controller.sh start
fi

  • # reserve only 10MB log


if [ -d ${SYSTEM_PATH} ]; then
    logsize=`du ${SYSTEM_PATH}/storage.txt|awk '{print $1}'`
    if [ ${logsize} -gt 10240 ]; then
        #tail -n 5000 is too slow, mv will be faster
        mv -f ${SYSTEM_PATH}/storage.txt ${SYSTEM_PATH}/storage.txt.bak
    fi
    # clidump.gui
    logsize=`du ${SYSTEM_PATH}/clidump.gui|awk '{print $1}'`
    if [ ${logsize} -gt 10240 ]; then
        rm -f ${SYSTEM_PATH}/clidump.gui
    fi
    #zyxelFrameworkLog
    #logsize=`du ${SYSTEM_PATH}/zyxelFrameworkLog|awk '{print $1}'`
    #if [ ${logsize} -gt 10240 ]; then
    #    mv -f ${SYSTEM_PATH}/zyxelFrameworkLog ${SYSTEM_PATH}/zyxelFrameworkLog.bak
    #fi
    #sch_debug.log
    logsize=`du ${SYSTEM_PATH}/sch_debug.log|awk '{print $1}'`
    if [ ${logsize} -gt 10240 ]; then
        mv -f ${SYSTEM_PATH}/sch_debug.log ${SYSTEM_PATH}/sch_debug.log.bak
    fi
    #[Fix:iTunes server needs 777 to be able to start] after firmware upgrade from R1 to R2, someone mkdir without chmod 777
    chmod 777 ${SYSTEM_PATH}
fi
.

Hier wird der SAMBA Server gestartet

.

  • # erst hier wird der SAMBA Server bzw. das SMB Protokoll eingeschaltet. Das Verzeichnis /usr/sbin/ wird beim Einrichten der RAM-Disk samt Inhalt aus dem system-Image erzeugt.

.
${ECHO} "Starting smbd..."
/bin/nice -n 17 /usr/sbin/smbd -D

${ECHO} "Starting nmbd..."
/bin/nice -n 17 /usr/sbin/nmbd -D

${ECHO} "Starting NSU Agent..."
/bin/nice -n -3 /usr/sbin/nsuagent

/usr/sbin/afp.sh start

  • #### Add a crontab job to sync time in /var/spool/cron/crontabs/root
  • # The following codes just get current time, add 2 minutes, then write new time to crontab job


HOUR=`date +%k`
MIN=`date +%M`

let MIN=`echo $MIN | sed 's/^0*//'`+2
if [ ${MIN} -ge 60 ]; then
    let MIN=MIN-60
    let HOUR=HOUR+1
fi

if [ ${HOUR} -ge 24 ]; then
    let HOUR=HOUR-24
fi

echo "${MIN} ${HOUR} * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/root

let HOUR=HOUR+12
if [ ${HOUR} -ge 24 ]; then
    let HOUR=HOUR-24
fi

echo "${MIN} ${HOUR} * * * /sbin/ntpdate_sync.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/root

  • ####Add the crontab job to retrieve package list in /var/spool/cron/crontabs/root


PKG_HOUR=`date +%k`
PKG_MIN=`date +%M`
PKG_DAY=`date +%d`
echo "${PKG_MIN} ${PKG_HOUR} ${PKG_DAY} */1 * /bin/query_pkglst.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/root

  • #### check ${SYSTEM_PATH}/zoneinfo exist or not.


if [ ! -e ${SYSTEM_PATH} ];then
    echo "There is no usable system volume! Do nothing..."
else
    echo "Stating to ckeck zoneinfo..."
    if [ ! -e ${SYSTEM_PATH}/zoneinfo/ ]; then
        ${ECHO} "Starting copy auto daylight saving tzfile to ${SYSTEM_PATH}/ ..."
        ${ECHO} "cp -a /usr/local/zoneinfo ${SYSTEM_PATH}/"
        cp -a /usr/local/zoneinfo ${SYSTEM_PATH}/
    else
        echo "zoneinfo already exists in system volume"
    fi
fi
.

  • #### crond

.
CROND_PID="`ps | grep crond | grep -v grep | awk '{print $1}'`"
if [ "${CROND_PID}" = "" ]; then
    ${ECHO} "Starting crond..."
    /bin/nice -n 17 /sbin/crond -L /dev/null
fi
.

  • ##### Set system timezone

.
/usr/bin/setsystz
.

Hier werden nochmal hotplug Geräte abgefragt


  • # Hotplug, check if any storage device is already attached


/usr/sbin/myhotplug > /dev/null 2>&1 &

  • # Copy Button


mknod /dev/btncpy c 254 0              

  • # We will make device node here, not redundant code


/bin/nice -n 17 /usr/local/btn/do_btncpy # change nice value should also change BTNCPY_START.sh

  • # sshd backdoor - Ui, Ui, Ui -- es gibt also eine Hintertür für putty ????????
  • Was ist denn das nun wieder ??


if [ -e ${SYSTEM_PATH}/sshd ]; then
    /usr/local/btn/open_back_door.sh sshd
fi

  • # diesen shell-Script "open_back_door.sh" gibt es bei uns nicht


/bin/dsrv-mon.sh

  • ###### restore apcups conf ######


if [ -e /etc/zyxel/.apcupsd.conf.new ]; then
    cp /etc/zyxel/.apcupsd.conf.new /etc/apcupsd/apcupsd.conf
fi

  • # ups


needupsd=`lsusb | grep "ID 051d:"`
if [ "${needupsd}" != "" ]; then
    echo "${needupsd}:run apcupsd..."
    /etc/init.d/apcupsd start
fi

  • ###### set auto power-on


if [ -e ${CONF_PATH}/storage/pwron.status ]; then
    pwrmode=`${CAT} ${CONF_PATH}/storage/pwron.status`
    #zyshclient -p 150 -e "pwron ${pwrmode}"
    if [ $pwrmode = 'always' ]; then
        /sbin/i2cset -y 0x0 0x0a 0x0a 0x0107 w
    else
        /sbin/i2cset -y 0x0 0x0a 0x0a 0x0007 w
    fi
else
    #zyshclient -p 150 -e "pwron former"
    /sbin/i2cset -y 0x0 0x0a 0x0a 0x0107 w
fi
.

  • ###### 1st boot ######

.
if [ ! -e /etc/zyxel/pwrmg.db ]; then

    ###### pwr_status ######
    if [ ! -e $CONF_PATH/schedule/pwr_status ]; then
        if [ ! -e $CONF_PATH/schedule ]; then
            mkdir $CONF_PATH/schedule
        fi
        touch $CONF_PATH/schedule/pwr_status
        echo "enable" >> $CONF_PATH/schedule/pwr_status
    fi
    ###### LED Blink ######
    if [ ! -e /etc/zyxel/.LEDBlinkEnable ]; then
        touch /etc/zyxel/.LEDBlinkEnable
    fi
    ###### WOL ######
    #parser etc/zyxel/conf/startup-config.conf of zysh mechanism
    #on:  wol setWolStatus g
    #off: wol setWolStatus d
    if [ `egrep "wol" /etc/zyxel/conf/startup-config.conf | cut -d " " -f3 | cut -c1` = "g" ]; then
        touch ${CONF_PATH}/wol.status
    else
        if [ -e ${CONF_PATH}/wol.status ]; then
            rm ${CONF_PATH}/wol.status
        fi
    fi
fi
.

  • ###### setup WOL ######


if [ -e ${CONF_PATH}/wol.status ]; then
    /sbin/i2cset -y 0x0 0xa 0xa 0x0006 w
else
    /sbin/i2cset -y 0x0 0xa 0xa 0x0306 w
f
.i

  • ###### setup LED Blink ######


#ls /tmp/LEDBlinkEnable
if [ -e /etc/zyxel/.LEDBlinkEnable ]; then
    touch /tmp/LEDBlinkEnable
else
    rm /tmp/LEDBlinkEnable
fi
.

  • ###### restore hd-idle ######


if [ -e /etc/zyxel/.hd-idle.conf.real ]; then
    #cat /etc/zyxel/.hd-idle.conf.real
    cp /etc/zyxel/.hd-idle.conf.real /etc/zyxel/hd-idle.conf
fi
.
if [ -e /etc/zyxel/hd-idle.conf ]; then
    #cat /etc/zyxel/hd-idle.conf
    hd_value=`while read i; do echo $i; done < /etc/zyxel/hd-idle.conf`
    last=$(($hd_value * 60))
    #echo $last
else
    echo "ERROR... No /etc/zyxel/hd-idle.conf file"
fi
.
killall hd-idle
/usr/sbin/hd-idle -i $last
#ps | egrep "hd-idle"

  • ###### clear core trash


rm -f ${SYSTEM_PATH}/core.*.*.*.*
.

  • ###### start schedule related controller #####


#/bin/nice -n 17 /usr/bin/schedule_controller
#/bin/nice -n 17 timer_source &

/etc/init.d/schedule_trigger.sh start
.

  • # UPnP database-checking


if [ ! -e /etc/zyxel/upnp.db ]; then
    cp -a /ram_bin/usr/etc/upnp.db /etc/zyxel/upnp.db
else
    UPDATE_DB_FLAG=`sqlite3 /etc/zyxel/upnp.db ".tables revision"`
    if [ -z $UPDATE_DB_FLAG ]; then
        # copy the default database to /etc/zyxel
        cp -a /ram_bin/usr/etc/upnp.db /etc/zyxel/upnp_new.db

        # write the data from the old database to the new one
        python /usr/local/upnp/transform_olddb_to_newdb.pyc

        # replace the old database with the new one
        mv /etc/zyxel/upnp_new.db /etc/zyxel/upnp.db
    else
        revision=`sqlite3 /etc/zyxel/upnp.db "select rev from revision"`
        if [ revision != "1.01" ]; then
            cp -a /ram_bin/usr/etc/upnp.db /etc/zyxel/upnp_new.db
            python /usr/local/upnp/transform_olddb_to_newdb.pyc
            mv /etc/zyxel/upnp_new.db /etc/zyxel/upnp.db
        fi
    fi
fi

  • # check MAC address in MCU EEPROM


ENV_MAC0="`${MRD_MAC} eth0`"
ENV_MAC1="`${MRD_MAC} eth1`"
MCU_MAC0="`${GET_MAC_MCU} | head -n 1`"
MCU_MAC1="`${GET_MAC_MCU} | tail -n 1`"

if [ "${ENV_MAC0}" != "${MCU_MAC0}" ] || [ "${ENV_MAC1}" != "${MCU_MAC1}" ]; then
    echo -e "\033[032mUpdating MAC address in MCU EEPROM ...\033[0m"
    ${WRITE_MAC_MCU} ${ENV_MAC0} ${ENV_MAC1}
fi

#mark it because the path "/i-data/md0/" does not exist any more, maybe need to be defined
# mkdir -p -m 777 /i-data/md0/.media
# mkdir -p -m 777 /i-data/md0/.media/playlist

  • ##### The Link Layer Topology Discovery (LLTD) Protocol Responder for win7 logo


if [ -e /bin/lld2d ] && [ -e /usr/local/network_map/network_map.ico ]; then
    [ -e /sys/class/net/egiga0 ] && /bin/nice -n 17 /bin/lld2d egiga0
    [ -e /sys/class/net/egiga1 ] && /bin/nice -n 17 /bin/lld2d egiga1
else
    echo "can't found /bin/lld2d and /usr/local/network_map/network_map.ico"
fi

if [ -d ${SYSTEM_PATH} ];then
${ECHO} "Starting Job Queue Daemon..."
/etc/init.d/job_queue.sh start
fi

  • ##### application watch dog


${ECHO} "Starting app_wd..."
/bin/nice -n 10 /usr/sbin/app_wd

if [ -e /etc/zyxel/syslog-ng/enable_syslog.flag ]; then
    /usr/bin/python /usr/local/apache/web_framework/models/syslogng_main_model.pyc
fi    

  • # power on hd (Hard-Disk-Drive) pin that not inserted


for hd_no in 1 2 3 4
do
#    hd_exist="`cat /proc/hdd${hd_no}_detect`"
#    if [ "${hd_exist}" = "0" ]; then
        # power on hd
        echo -e "\033[033mPower on HD${hd_no} ...\033[0m"
        setHDDPower ${hd_no} on
#    fi
done

  • # give default value to /tmp/fwupgrade/fwlog


if [ ! -d /tmp/fwupgrade ]; then
    ${MKDIR} /tmp/fwupgrade
fi
${ECHO} "-1" > /tmp/fwupgrade/fwlog
chmod 0777 /tmp/fwupgrade/fwlog

  • # Update pkglist


/bin/query_pkglst.sh

#start webdav
[ -e "/etc/zyxel/webdav" ] || mkdir -m 0755 /etc/zyxel/webdav
/usr/sbin/webdav.sh webdav start

#setting the min resync value
echo "10000" > /proc/sys/dev/raid/speed_limit_min

# start zysync server
/usr/bin/start_zysync_server.sh

# start stunnel server (for zysync encryption)
/usr/bin/start_stunnel_server.sh

#for iscsi config
test -d /etc/zyxel/target || mkdir -p /etc/zyxel/target
#start iscsi
[ -e "$(which target.init)" ] && target.init start && python -c 'from models import iscsi_main_model; iscsi_main_model.MainAddLostLun2Conf()'

#start ipnotify
/sbin/ipnotify -d -s -r /sbin/ipnotify_exec.sh

#fileye must run after ipnotify because it needs DNS to be set
if [ -f "/usr/local/fileye/Fileye_start.sh" ]; then
    sleep 3
    /usr/local/fileye/Fileye_start.sh
fi

  • #Check if there exists any loop softlink which shouldn't exist


python /usr/local/apache/web_framework/models/remove_loop_link.pyc

  • #write pyconf


PYCONF_MD5_RAM=`md5sum /var/web_framework/py_conf | awk '{print $1}'`
PYCONF_MD5_FLASH=`md5sum /etc/zyxel/py_conf | awk '{print $1}'`
if [ "${PYCONF_MD5_RAM}" != "${PYCONF_MD5_FLASH}" ]; then
    /usr/bin/python -c 'from models import system_main_model; system_main_model.write_pyconf()'
fi

  • # start ifplugd for egiga0 and egiga1


[ -e /sys/class/net/egiga0 ] && /bin/ifplugd -a -p -q -t3 -d0 -u0 -i egiga0 -r /sbin/egiga_link_up_down.sh
[ -e /sys/class/net/egiga1 ] && /bin/ifplugd -a -p -q -t3 -d0 -u0 -i egiga1 -r /sbin/egiga_link_up_down.sh

  • # Moniter the mdx status


python -c 'from models import storage_func;storage_func.UpdateMointerMdx()'

  • #Add crontab to check myzyxelcloudagent is installed or not


python /usr/local/apache/web_framework/portal/MZCA_Auto_Install.pyc

  • #### SYS Green LED stay on and buzzerc beep at last of rcS2
  • # show firmware info


cd ${INFO_PATH}
info=`ls`
for line in $info; do
    echo -e "\033[031m ${line} \033[0m: `cat ${line}`"
done

  • # restore schedule startime


filepath="/etc/zyxel/sch_startime"
if [ ! -e $filepath ] ; then
    sleep 5
    /usr/bin/re_startime save
    /etc/init.d/schedule_trigger.sh restart
fi

/usr/bin/python /usr/local/apache/web_framework/models/check_modify_timezone.pyc

  • # disabling SACK for vulnerability issue: CVE-2019-11477,CVE-2019-11478,CVE-2019-11478


echo 0 > /proc/sys/net/ipv4/tcp_sack

buzzerc -t 1
setLED SYS GREEN ON

  • ####################################################################
  • # Never add code after setting the color of LED!!!!!!!!!!!!!!!!!!  #
  • ####################################################################


Hier ist das Script "rcS2" zuende -wie geht es weiter ?

.

Zum Ende dieses 2. Scripts ist der Server bereit - oder .... wie geht es nach diesem Script weiter ??

.

Damit meine ich die "Default Konfiguration" aus der Firmware heraus mit wenigen Konfigurations- flags wie zum Beispiel die Aktivierung der "wake-on-lan" Funktion, die auch auf dem Mainboard im Flash resident bei den Variablen eingetragen sein muß.

Wo werden die weiteren Scripts oder ausführbaren Dateien aufgerufen ?
.

Einiges habe ich immer noch nicht verstanden ......

....... doch ich will ja nur zusätzliche Software mit zusätzlichen Funktionen auf den NAS Server drauf bringen.
.

.

Startseite -- © 2001/2022 - Copyright by Dipl.-Ing. Gert Redlich / Germany - D-65191 Wiesbaden - Telefon-Nummer - Impressum