The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"скрипт для chkconfig"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"скрипт для chkconfig"  +/
Сообщение от MadLord (ok) on 05-Июн-09, 10:36 
Приветствую....система RHEL 5 Server....имеется скрипт для автозапуска, написанный для поддержки chkconfig`ом.

#!/bin/sh                                                                    
#                                                                            
# chkconfig: 5 90 10                                                          
# description: mystartscript
                                                                              
. /etc/rc.d/init.d/functions                                                  
                                                                              
CONF="/usr/local/etc/my.conf"                                                
# Suck in the configuration variables.                                        
if [ -r ${CONF} ] ; then                                                      
        . ${CONF}                                                            
else                                                                          
        echo "No conf file found"                                            
        exit                                                                  
fi                                                                            
                                                                              
my_wpid=`ps -e|sed -n '/mydaemon\.sh/{/grep|ulimit/!p;}'|awk '{print $1}'`
my_pid=`ps -e|sed -n '/mydaemon2\.pl/{/grep|ulimit/!p;}'|awk '{print $1}'`  

case "$1" in                                                                    
start)                                                                          
        echo -n "Starting MyScript: "                                                
                                                                                
        if [ -n "${my_wpid}" ]; then                                          
                echo -n "MyScript already runned"                                    
                failure; echo; exit 1                                          
        fi                                                                      

        username=`id -un`                                                      
        if [ ${username} = ${my_user} ]; then                                  
                daemon --pidfile ${my_wpidfile} ${mydaemon} >> ${my_logfile} 2>&1                                                                        
                RETVAL=$?                                                      
        elif [ ${username} = "root" ]; then                                    
                daemon --user ${my_user} --pidfile ${my_wpidfile} ${mydaemon} >> ${my_logfile} 2>&1 &                                                    
                RETVAL=$?                                                      
        else                                                                    
                echo -n 'You must be a root or my_user!'                      
                RETVAL=1                                                        
        fi                                                                      
        [ $RETVAL -ne 0 ] && failure || success  
        echo                                                      
        ;;                                                        
stop)                                                            
        echo -n "Stopping MyScript: "                                  
                                                                  
        killproc ${mydaemon}                                  
        RETVAL1=$?                                                
        killproc ${mydaemon2}                                  
        RETVAL2=$?                                                
        rm -f ${my_piddir}/*.pid                                
                                                                  
        [ $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 ] && failure || success
        echo                                                      
        ;;                                                        
status)                                                          
        status ${mydaemon2}                                    
        ;;                                                        
*)                                                                
        echo "Usage: `basename $0` (start|stop|status)"                  
        ;;                                                        
esac                                                              
exit                                                                                        


ложу симлинк на данный файл в /etc/init.d....добавляю скрипт в chkconfig('chkconfig --add mystartscript')...ставлю уровни('chkconfig --level 2345 mystartscript on')...
проблема следующего плана...при запуске сервера скрипт нормально запускается на нужном уровне(init) в нужном порядке(S90mystartscript)...но при выключении, почемуто не ложится вообще....т.е. K10mystartscript не срабатывает и скрипт ложится только killall`ом...
в чем можетбыть проблема?....нужные записи на все уровнях (в папках /etc/rcX.d) появляются...
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "скрипт для chkconfig"  +/
Сообщение от reader (ok) on 05-Июн-09, 12:18 
>[оверквотинг удален]
>esac
>exit
>
>ложу симлинк на данный файл в /etc/init.d....добавляю скрипт в chkconfig('chkconfig --add mystartscript')...ставлю
>уровни('chkconfig --level 2345 mystartscript on')...
>проблема следующего плана...при запуске сервера скрипт нормально запускается на нужном уровне(init) в
>нужном порядке(S90mystartscript)...но при выключении, почемуто не ложится вообще....т.е. K10mystartscript не срабатывает
>и скрипт ложится только killall`ом...
>в чем можетбыть проблема?....нужные записи на все уровнях (в папках /etc/rcX.d) появляются...
>

а если K10mystartscript в rc0.d и в rc6.d положить?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "скрипт для chkconfig"  +/
Сообщение от MadLord (ok) on 05-Июн-09, 12:32 
>а если K10mystartscript в rc0.d и в rc6.d положить?

он везде есть...chkconfig ложит K10mystartscript в rc0.d, rc1.d и rc6.d и S90mystartscript в rc2.d, rc3.d, rc4.d и rc5.d...
причем если вручную делать service mystartsscript stop, то скрипт работает...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "скрипт для chkconfig"  +/
Сообщение от MadLord (ok) on 08-Июн-09, 06:34 
ап...решение ищется....
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "скрипт для chkconfig"  +/
Сообщение от reader (ok) on 08-Июн-09, 11:05 
>ап...решение ищется....

попробуйте указывать полные пути к командам

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "скрипт для chkconfig"  +/
Сообщение от MadLord (ok) on 08-Июн-09, 13:13 
>>ап...решение ищется....
>
>попробуйте указывать полные пути к командам

к каким именно?...к демонам в конф-файле прописаны полные пути...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "скрипт для chkconfig"  +/
Сообщение от reader (ok) on 08-Июн-09, 13:34 
>>>ап...решение ищется....
>>
>>попробуйте указывать полные пути к командам
>
>к каким именно?...к демонам в конф-файле прописаны полные пути...

в скрипте

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "скрипт для chkconfig"  +/
Сообщение от MadLord (ok) on 09-Июн-09, 07:26 
>>ап...решение ищется....
>
>попробуйте указывать полные пути к командам

изменил...


<my_wpid=`ps -e|sed -n '/mydaemon\.sh/{/grep|ulimit/!p;}'|awk '{print $1}'`
>my_wpid=`/bin/ps -e|sed -n '/mydaemon\.sh/{/grep|ulimit/!p;}'|awk '{print $1}'`

<my_pid=`ps -e|sed -n '/mydaemon2\.pl/{/grep|ulimit/!p;}'|awk '{print $1}'`  
>my_pid=`/bin/ps -e|sed -n '/mydaemon2\.pl/{/grep|ulimit/!p;}'|awk '{print $1}'`  

<        echo -n "Starting MyScript: "                                                
>        /bin/echo -n "Starting MyScript: "

<                echo -n "MyScript already runned"                                    
>                /bin/echo -n "MyScript already runned"

<                failure; echo; exit 1                                          
>                failure; /bin/echo; exit 1                                          

<        username=`id -un`                                                      
>        username=`/bin/id -un`                                                      

<                echo -n 'You must be a root or my_user!'                      
>                /bin/echo -n 'You must be a root or my_user!'                      

<        echo                                                      
>        /bin/echo                                                      

<        echo -n "Stopping MyScript: "                                  
>        /bin/echo -n "Stopping MyScript: "                                  

<        rm -f ${my_piddir}/*.pid                                
>        /usr/bin/rm -f ${my_piddir}/*.pid                                

<        echo                                                      
>        /bin/echo                                                      

<        echo "Usage: `basename $0` (start|stop|status)"                  
>        /bin/echo "Usage: `basename $0` (start|stop|status)"                  


хотя как и ожидал эффекта ноль...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "скрипт для chkconfig"  +/
Сообщение от MadLord (ok) on 10-Июн-09, 07:58 

>проблема следующего плана...при запуске сервера скрипт нормально запускается на нужном уровне(init) в
>нужном порядке(S90mystartscript)...но при выключении, почемуто не ложится вообще....т.е. K10mystartscript не срабатывает
>и скрипт ложится только killall`ом...
>в чем можетбыть проблема?....нужные записи на все уровнях (в папках /etc/rcX.d) появляются...
>

вообщем решение найдено...оказывается, чтобы скрипту при перезагрузке(или на уровнях 0,1 и 6) отправилась команда 'service mystartscript stop' нужно при старте скрипта положить в папку /var/lock/subsys пустой файл с именем, таким же как у скрипта....т.е. сделать 'touch /var/lock/subsys/mystartscript'....и главно не забыть его потом удалить(т.е. в stop добавить строку 'rm -f /var/lock/subsys/mystartscript')...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру