From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: unnamedartist@mail.ru To: hihin@rambler.ru, ALT Linux Community general discussions Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: [85.112.38.122] Date: Tue, 25 Sep 2007 11:54:24 +0400 References: <200709251023.52602@ruslandh> In-Reply-To: <200709251023.52602@ruslandh> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Message-Id: Subject: Re: [Comm] =?koi8-r?b?c3RhcnRwcm9jIMkga2lsbHByb2M=?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.9 Precedence: list Reply-To: unnamedartist@mail.ru, ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Sep 2007 07:57:37 -0000 Archived-At: List-Archive: List-Post: > Здравствуйте unnamedartist@mail.ru > В сообщении от Вторник 25 сентября 2007 unnamedartist@mail.ru > написал(a): > > > On Mon, Sep 24, 2007 at 12:00:37PM +0400, unnamedartist@mail.ru > wrote: > > > > Здравствуйте, подскажите, в каких пакетах в ALTLinux Desktop 4.0 > > > > содержаться startproc и killproc > > > > > > Зачем они вам? > > > > У нас просто написано куча стартовых сценариев для собственных > > программ с использованием startproc и killproc. > А эммулировать их скриптом никак нельзя ? > > PS Совершенно не представляю что это, сужу только по названию. > -- Там очень простые вещи, просто из всего бюро на ALT сижу только я, у других SUSE, поэтому я если буду делать свою часть, мне надо чтобы на их машинах они тоже работали. Вот пример, одного из таких сценариев: #! /bin/sh # #--------------------------------------------------------- # Version 1.2 by Igor Kandalov, #--------------------------------------------------------- # Control script for KVL PI data acquisition subsystem #--------------------------------------------------------- # Usage: start - start subsystem # stop - stop subsystem # close - stop subsystem and shutdown controllers # load - automatic start subsystem from "init" #--------------------------------------------------------- #--------------------------------------------------------- # Set subsystem directories and files #--------------------------------------------------------- init_subsystem () { #--- subsystem directories ------------------------------ SYS_DIR=/INFOTRANS/SYSTEM LOG_DIR=/INFOTRANS/LOG CFG_DIR=/INFOTRANS/CONFIG #----- test -d $LOG_DIR || mkdir $LOG_DIR test -d $LOG_DIR/LOG0 || mkdir $LOG_DIR/LOG0 test -d $LOG_DIR/LOG1 || mkdir $LOG_DIR/LOG1 #--- IP addresses --------------------------------------- K020_IP=192.168.0.75 K021_IP=192.168.0.76 K022_IP=192.168.0.77 K023_IP=192.168.0.78 #----- K000_IP=192.168.0.79 #----- CMD0_IP=192.168.0.70 CMD1_IP=192.168.0.72 CMD2_IP=192.168.0.75 #--- delay for connect to remote controller ------------- START_DELAY=5 STOP_DELAY=2 CLOSE_DELAY=2 #--- software of 0-th level controller ------------------ SERVER_0=$SYS_DIR/server LOGGER_0=$SYS_DIR/logger DRIVER_0=$SYS_DIR/pci_7200.ko CL_SCN_0=$SYS_DIR/client_l0 CL_ASD_0=$SYS_DIR/client_asd PR_ASD_0=$SYS_DIR/processor_asd #----- test -e $SERVER_0 || { echo " ERROR: File $SERVER_0 not found"; exit 5; } test -e $LOGGER_0 || { echo " ERROR: File $LOGGER_0 not found"; exit 5; } test -e $DRIVER_0 || { echo " ERROR: File $DRIVER_0 not found"; exit 5; } test -e $CL_SCN_0 || { echo " ERROR: File $CL_SCN_0 not found"; exit 5; } test -e $CL_ASD_0 || { echo " ERROR: File $CL_ASD_0 not found"; exit 5; } test -e $PR_ASD_0 || { echo " ERROR: File $PR_ASD_0 not found"; exit 5; } #--- software of 2-nd level controller ------------------ SERVER_2=$SYS_DIR/server LOGGER_2=$SYS_DIR/logger DRIVER_2=$SYS_DIR/scan_2800.ko CL_SCN_2=$SYS_DIR/client_l2 HD_SCN_2=$SYS_DIR/processor_l2 #----- test -e $SERVER_2 || { echo " ERROR: File $SERVER_2 not found"; exit 5; } test -e $LOGGER_2 || { echo " ERROR: File $LOGGER_2 not found"; exit 5; } test -e $DRIVER_2 || { echo " ERROR: File $DRIVER_2 not found"; exit 5; } test -e $CL_SCN_2 || { echo " ERROR: File $CL_SCN_2 not found"; exit 5; } test -e $HD_SCN_2 || { echo " ERROR: File $HD_SCN_2 not found"; exit 5; } #--- controller name ------------------------------------ CONTROLLER="`cat /etc/HOSTNAME`" echo $CONTROLLER > $CFG_DIR/controller.cfg } #--------------------------------------------------------- # Start remote controller ($1 - controller IP) #--------------------------------------------------------- start_remote () { while [ $START_DELAY -gt 0 ] do if ssh -q $1 mkdir -p $SYS_DIR ; then if ssh -q $1 mkdir -p $CFG_DIR ; then if scp -qB $SYS_DIR/* $1:$SYS_DIR ; then if scp -qB $CFG_DIR/* $1:$CFG_DIR ; then if ssh -q $1 $SYS_DIR/control start remote ; then #echo " Start remote controller - $1" break fi fi fi fi fi echo " Remote controller $1 not found" sleep 1 let "START_DELAY-=1" done let "START_DELAY+=2" sleep 5 } #--------------------------------------------------------- # Stop remote controller ($1 - controller IP) #--------------------------------------------------------- stop_remote () { while [ $STOP_DELAY -gt 0 ] do if ssh -q $1 $SYS_DIR/control stop remote ; then #echo " Stop remote controller - $1" break fi echo " Remote controller $1 not found" sleep 1 let "STOP_DELAY-=1" done let "STOP_DELAY+=2" } #--------------------------------------------------------- # Close remote controller ($1 - controller IP) #--------------------------------------------------------- close_remote () { while [ $CLOSE_DELAY -gt 0 ] do if ssh -q $1 $SYS_DIR/control close remote ; then #echo " Close remote controller - $1" break fi echo " Remote controller $1 not found" sleep 1 let "CLOSE_DELAY-=1" done let "CLOSE_DELAY+=2" } #--------------------------------------------------------- # Save Log-files from previous session #--------------------------------------------------------- save_log () { mv -f -t $LOG_DIR/LOG1 $LOG_DIR/LOG0/*.log 2> /dev/null mv -f -t $LOG_DIR/LOG0 $LOG_DIR/*.log 2> /dev/null #---------------------------------- cat /dev/null > /var/log/infotrans_debug cat /dev/null > /var/log/infotrans_errors cat /dev/null > /var/log/infotrans_info cat /dev/null > /var/log/infotrans_warnings cat /dev/null > $LOG_DIR/infotrans_debug cat /dev/null > $LOG_DIR/infotrans_errors cat /dev/null > $LOG_DIR/infotrans_info cat /dev/null > $LOG_DIR/infotrans_warnings } #--------------------------------------------------------- # Start 0-th level controller (no arguments) #--------------------------------------------------------- start_local_0 () { echo " Start controller - $CONTROLLER" #---------------------------------- insmod $DRIVER_0 cfg_dir=$CFG_DIR log_dir=$LOG_DIR #---------------------------------- startproc -f -q $LOGGER_0 -c $CFG_DIR -l $LOG_DIR #---------------------------------- startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K020 -o RS01 startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K020 -o RS05 startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K021 -o RS03 startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K021 -o RS07 startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K022 -o RS02 startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K022 -o RS06 startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K023 -o RS04 startproc -f -q $CL_SCN_0 -c $CFG_DIR -l $LOG_DIR -i K023 -o RS08 startproc -f -q $CL_ASD_0 -c $CFG_DIR -l $LOG_DIR -i /proc/pci_7200/control -o DASD startproc -f -q $PR_ASD_0 -c $CFG_DIR -l $LOG_DIR -i DASD -o RASD -a /proc/pci_7200/control #---------------------------------- startproc -f -q $SERVER_0 -c $CFG_DIR -l $LOG_DIR } #--------------------------------------------------------- # Stop 0-th level controller (no arguments) #--------------------------------------------------------- stop_local_0 () { echo " Stop controller - $CONTROLLER" #---------------------------------- killproc $SERVER_0 #---------------------------------- killproc $CL_SCN_0 killproc $PR_ASD_0 killproc $CL_ASD_0 #---------------------------------- killproc $LOGGER_0 #---------------------------------- rmmod -f $DRIVER_0 } #--------------------------------------------------------- # Start 2-nd level controller ($1 - first scanner, $2 - second scanner) #--------------------------------------------------------- start_local_2 () { echo " Start controller - $CONTROLLER" #---------------------------------- insmod $DRIVER_2 cfg_dir=$CFG_DIR log_dir=$LOG_DIR #---------------------------------- startproc -f -q $LOGGER_2 -c $CFG_DIR -l $LOG_DIR #---------------------------------- startproc -f -q $CL_SCN_2 -c $CFG_DIR -l $LOG_DIR -i /proc/scan_2800_0/control -o DS$1 startproc -f -q $CL_SCN_2 -c $CFG_DIR -l $LOG_DIR -i /proc/scan_2800_1/control -o DS$2 #---------------------------------- startproc -f -q $HD_SCN_2 -c $CFG_DIR -l $LOG_DIR -i DS$1 -o RS$1 startproc -f -q $HD_SCN_2 -c $CFG_DIR -l $LOG_DIR -i DS$2 -o RS$2 #---------------------------------- startproc -f -q $SERVER_2 -c $CFG_DIR -l $LOG_DIR } #--------------------------------------------------------- # Stop 2-nd level controller (no arguments) #--------------------------------------------------------- stop_local_2 () { echo " Stop controller - $CONTROLLER" #---------------------------------- killproc $SERVER_2 #---------------------------------- killproc $HD_SCN_2 #---------------------------------- killproc $CL_SCN_2 #---------------------------------- killproc $LOGGER_2 #---------------------------------- rmmod -f $DRIVER_2 } #--------------------------------------------------------- # Start subsystem (no arguments) #--------------------------------------------------------- start_subsystem () { save_log case "$CONTROLLER" in K020) start_local_2 01 05 ;; K021) start_local_2 03 07 ;; K022) start_local_2 02 06 ;; K023) start_local_2 04 08 ;; K000) # start_remote $K020_IP start_remote $K021_IP # start_remote $K022_IP # start_remote $K023_IP start_local_0 ;; *) echo " ERROR: Wrong controller name - $CONTROLLER"; exit 1 ;; esac } #--------------------------------------------------------- # Stop subsystem (no arguments) #--------------------------------------------------------- stop_subsystem () { case "$CONTROLLER" in K020) stop_local_2 ;; K021) stop_local_2 ;; K022) stop_local_2 ;; K023) stop_local_2 ;; K000) # stop_remote $K020_IP stop_remote $K021_IP # stop_remote $K022_IP # stop_remote $K023_IP stop_local_0 ;; *) echo " ERROR: Wrong controller name - $CONTROLLER"; exit 1 ;; esac } #--------------------------------------------------------- # Close subsystem (no arguments) #--------------------------------------------------------- close_subsystem () { case "$CONTROLLER" in K020) stop_local_2 ; halt ;; K021) stop_local_2 ; halt ;; K022) stop_local_2 ; halt ;; K023) stop_local_2 ; halt ;; K000) # close_remote $K020_IP close_remote $K021_IP # close_remote $K022_IP # close_remote $K023_IP stop_local_2 ; halt ;; *) echo " ERROR: Wrong controller name - $CONTROLLER"; exit 1 ;; esac } #--------------------------------------------------------- # Load subsystem (no arguments) #--------------------------------------------------------- load_subsystem () { if [ "$CONTROLLER" = "K000" ] ; then if [ ! ping -c 3 $CMD0_IP ] ; then if [ ! ping -c 3 $CMD1_IP ] ; then if [ ! ping -c 3 $CMD2_IP ] ; then start_subsystem fi fi fi fi } #--------------------------------------------------------- # Execute control script #--------------------------------------------------------- test $2 || echo "----------------------------------------------------" test $2 || echo " KVL_PI version 1.2. Subsystem action: $1 " test $2 || echo "----------------------------------------------------" init_subsystem case "$1" in start) start_subsystem ;; stop) stop_subsystem ;; close) close_subsystem ;; load) load_subsystem ;; *) echo " ERROR: Wrong subsystem action - $1"; exit 1 ;; esac test $2 || echo "----------------------------------------------------" # echo "---- $1 --- $2 ---" exit 0