The OpenNET Project / Index page

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

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

"Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 04-Июн-08, 18:39 
Привет, в общем надо засунуть Perl скрипт на автозагрузку, т.е. когда система запускается скрипт начинает работать.... и висит в процессах
ПРОБОВАЛ: Читал дохрена статей и сообщений в нете ничего полезного не нашёл или криво искал...
Почитал README в самом SUSE.... короче там написано надо создать скрипт подобный готовому под название skeleton.... ок с этим всё нормально создал.... засунул его в /etc/init.d/ под названием my_program и зделал его executible.
Теперь надо функцией insserv создать символические ссылки... тоже разобрался....

Теперь делаем так: /etc/init.d/my_program start
Выводит: Starting my_program DONE
т.е. запустился.....

Для полного убеждения делаем так: ps ax | grep my_programm
Выводит: 7009 pts/1 S 0:00 my_program
т.е. работает.....

теперь о проблеме.....
Заходим в Yast - это типа панел управления....
Переходим в SystemService (RunLevel)- Это типа автозагрузки
Находим там my_program
и смело нажимаем на Enable

Вот теперь СУкА Tast подводит и Выводит:
my_program start и висит......

открываем новую командную строку и пишем:ps ax | grep my_programm
Выводит: 7009 pts/1 S 0:00 my_program
т.е. работает..... но в то же время СУКА YAST висит

теперь делаем так: /etc/init.d/my_program stop т.е. останавливаем.....

и тут сукА Yast просыпается и выводит:
/etc/init.d/my_program start returned 0 (success): DONE

Пробуем игнорировать этот глюк на Yaste и перегружаемcя по идеи my_program должна запустится и висеть в запущенных процессах....

Перегрузились и смотрим: ps ax | grep my_programm
Опять ничего нету(((

ВОПРОС: 1) Как засунуть perl скрипт в автозапуск.....

P.S.: Все вышеуказанные действие делал с запуском apache все пашет а PERL нет....

Заранее огромное всем ТАНКС ;)

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

 Оглавление

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


1. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от PavelR (??) on 04-Июн-08, 19:41 

Фишка в том, что старт сервиса на этапе загрузки и через Yast производятся в чистом окружении, а /etc/init.d/myprogram выполняется в окружении пользователя.

Чтобы было совсем честно надо делать service myprogram start в консоли - зависнет аналогично как и в ясте.


В общем - думать в это направление.

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

2. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 04-Июн-08, 23:11 
>
>
>Фишка в том, что старт сервиса на этапе загрузки и через Yast
>производятся в чистом окружении, а /etc/init.d/myprogram выполняется в окружении пользователя.
>
>Чтобы было совсем честно надо делать service myprogram start в консоли -
>зависнет аналогично как и в ясте.
>
>
>В общем - думать в это направление.

ln -s /etc/init.d/myprogram /etc/init.d/rc3.d/K02myprogram
ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/K02myprogram
ln -s /etc/init.d/myprogram /etc/init.d/rc3.d/S20myprogram
ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/S20myprogram
ln -s /etc/init.d/myprogram /usr/cbin/rcmyprogram
rcmyprogram start
rcmyprogram stop
reboot

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

3. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 04-Июн-08, 23:14 
>[оверквотинг удален]
>>В общем - думать в это направление.
>
>ln -s /etc/init.d/myprogram /etc/init.d/rc3.d/K02myprogram
>ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/K02myprogram
>ln -s /etc/init.d/myprogram /etc/init.d/rc3.d/S20myprogram
>ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/S20myprogram
>ln -s /etc/init.d/myprogram /usr/cbin/rcmyprogram -----------> !!!!!
>rcmyprogram start
>rcmyprogram stop
>reboot

Ошибочка...
ln -s /etc/init.d/myprogram /usr/sbin/rcmyprogram


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

4. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от PavelR (??) on 05-Июн-08, 06:41 
>[оверквотинг удален]
>>ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/K02myprogram
>>ln -s /etc/init.d/myprogram /etc/init.d/rc3.d/S20myprogram
>>ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/S20myprogram
>>ln -s /etc/init.d/myprogram /usr/cbin/rcmyprogram -----------> !!!!!
>>rcmyprogram start
>>rcmyprogram stop
>>reboot
>
>Ошибочка...
>ln -s /etc/init.d/myprogram /usr/sbin/rcmyprogram

А что, в suse chkconfig отменили, я просто не в курсе ??
Мне кажется что чему-то не тому учишь.

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

5. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 05-Июн-08, 08:47 
>А что, в suse chkconfig отменили, я просто не в курсе ??
>
>Мне кажется что чему-то не тому учишь.

Я Думаююю ты сам ничему не учишь..... лучшебы подсказал как делать чем шифроватся и писать в каком направлении думать ;)


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

17. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от PavelR (??) on 05-Июн-08, 11:48 
>>А что, в suse chkconfig отменили, я просто не в курсе ??
>>
>>Мне кажется что чему-то не тому учишь.
>
>Я Думаююю ты сам ничему не учишь..... лучшебы подсказал как делать чем
>шифроватся и писать в каком направлении думать ;)

Если чо, чувак, то обрати более пристальное внимание на первый ответ в теме. Это и есть учеба.

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

11. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 05-Июн-08, 10:04 

>А что, в suse chkconfig отменили, я просто не в курсе ??
>
>Мне кажется что чему-то не тому учишь.

в suse chkconfig не отменён :)

.. но он делает то же самое что я написал вверху.

Я же не знаю что у него с системой - вот и посоветовал сделать это ручками...
как-то надёжнее :)


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

6. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 05-Июн-08, 09:14 
>[оверквотинг удален]
>>ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/K02myprogram
>>ln -s /etc/init.d/myprogram /etc/init.d/rc3.d/S20myprogram
>>ln -s /etc/init.d/myprogram /etc/init.d/rc5.d/S20myprogram
>>ln -s /etc/init.d/myprogram /usr/cbin/rcmyprogram -----------> !!!!!
>>rcmyprogram start
>>rcmyprogram stop
>>reboot
>
>Ошибочка...
>ln -s /etc/init.d/myprogram /usr/sbin/rcmyprogram

Сделал все как ты написал.... но когда сам запускаю
rcmyprogram start
Всё нормально запускается, а при reboot e не запускается:((((

myprogram - это bash - овский скрипт ... этот bash скрипт вызывает
perl my_scritp.pl &

Я вот думаю может my_script.pl как то надо делать daemon...

Заранее спасибо за помощь ;)


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

7. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от sn (??) on 05-Июн-08, 09:17 
Тупо возьми и посмотри как mrtg запускается и сделай так же.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 05-Июн-08, 09:26 
>Тупо возьми и посмотри как mrtg запускается и сделай так же.

Чесно говоря я не знаю что такое mrtg поискал у себя в SUSE mrtg такого нет :(

Ещё я обычные приложения типа apache и mysql запускаю.... но вот именно с PERL скрипт возникают ошибки при чем я не знаю где можно посмотреть ЛОГ ошибок при автозапуске..... т.е причину почему не запускается я выяснить не могу :) и все идёт методом ТЫКА ;)


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

14. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от sn (??) on 05-Июн-08, 10:17 
>>Тупо возьми и посмотри как mrtg запускается и сделай так же.
>
>Чесно говоря я не знаю что такое mrtg поискал у себя в
>SUSE mrtg такого нет :(
>
>Ещё я обычные приложения типа apache и mysql запускаю.... но вот именно
>с PERL скрипт возникают ошибки при чем я не знаю где
>можно посмотреть ЛОГ ошибок при автозапуске..... т.е причину почему не запускается
>я выяснить не могу :) и все идёт методом ТЫКА ;)
>

#!/bin/bash
#
# chkconfig: 345 21 79
# description: smsalarm
# processname: smsalarm

# source function library
. /etc/rc.d/init.d/functions

RETVAL=0

case "$1" in
  start)
        echo -n "Starting SMSalarm service: "
        cd /usr/local/smsalarm
        daemon ./smsalarm

smsalarm - это перловый скрипт.


        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/smsalarm
        ;;
  stop)
        echo -n "Shutting down SMSalarm service: "
        killproc smsalarm
        RETVAL=$?

        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/smsalarm
        ;;
  restart|reload)
        $0 stop
        $0 start
        RETVAL=$?
        ;;
  status)
        status smsalarm
        RETVAL=$?
        ;;
  *)
        echo "Usage: smsalarm {start|stop|status|restart|reload}"
        exit 1
esac

exit $RETVAL

Вот из скрипта smsalarm часть, которая отвечает за работу в фоне (взята из mrtg)

#!/usr/bin/perl -w

use strict;
use POSIX 'setsid';

my $pidfile='/var/run/smsalarm.pid';

demonize_me($pidfile);

sub demonize_me {
    my $pidfile = shift;
    print "Daemonizing ...\n";
           defined (my $pid = fork) or die "Can't fork: $!";
           if ($pid) {
              exit;
            } else {
                if (defined $pidfile){
                   die "ERROR: I Quit! Another copy seems to be running. Check $pidfile\n" if -f $p
                   open(PIDFILE,">$pidfile") ;#or die "creating $pidfile: $!\n";
                   print PIDFILE "$$\n";
                   close PIDFILE;
              }
              &POSIX::setsid or die "Can't start a new session: $!";
              open STDOUT,'>/dev/null' or die "ERROR: Redirecting STDOUT to /dev/null: $!";
              open STDIN, '</dev/null' or die "ERROR: Redirecting STDIN from /dev/null: $!";

            }
}


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

15. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от sn (??) on 05-Июн-08, 10:24 
это для редхата. перл 5.6 может что-нибудь надо поправить.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 05-Июн-08, 09:48 
>Тупо возьми и посмотри как mrtg запускается и сделай так же.

/etc/init.d/myprogram в студию!

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

10. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 05-Июн-08, 09:55 
>>Тупо возьми и посмотри как mrtg запускается и сделай так же.
>
>/etc/init.d/myprogram в студию!

А что говорит:

which my_script.pl

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

13. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 05-Июн-08, 10:12 

>при чем я не знаю где можно посмотреть ЛОГ ошибок при автозапуске..... т.е причину >почему не запускается я выяснить не могу :)

/var/log/boot.msg
/var/log/boot.omsg
/var/log/localmessages

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

18. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 05-Июн-08, 15:55 
>
>>при чем я не знаю где можно посмотреть ЛОГ ошибок при автозапуске..... т.е причину >почему не запускается я выяснить не могу :)
>
>/var/log/boot.msg
>/var/log/boot.omsg
>/var/log/localmessages

В общем посмотрел ЛОГ файл /var/log/boot.msg
там sms start пишет done
а при проверке ps ax | grep script.pl
нет запущенного процесса???

Как быть помоги плизззз.....

Заранее спасибо;)


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

19. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 05-Июн-08, 22:21 
>[оверквотинг удален]
>>/var/log/localmessages
>
>В общем посмотрел ЛОГ файл /var/log/boot.msg
>там sms start пишет done
>а при проверке ps ax | grep script.pl
>нет запущенного процесса???
>
>Как быть помоги плизззз.....
>
>Заранее спасибо;)

SMPPPD_BIN= /work/sms/sms.sh

а так:

ps ax | grep sms.sh

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

20. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от Gennadi (??) on 06-Июн-08, 00:21 
>[оверквотинг удален]
>>
>>Как быть помоги плизззз.....
>>
>>Заранее спасибо;)
>
>SMPPPD_BIN= /work/sms/sms.sh
>
>а так:
>
>ps ax | grep sms.sh

Попробуй этот скрипт:

=============================================================
#! /bin/sh

## BEGIN INIT INFO
# Provides:       sms
# Required-Start: $remote_fs $network $syslog
# Should-Start:   isdn $named slpd
# Required-Stop:  $remote_fs $network $syslog
# Should-Stop:    isdn $named slpd
# Default-Start:  2 3 5
# Default-Stop:   0 1 6
# Description:    Start the sms.
### END INIT INFO

# Set some defaults
SMPPPD="sms.sh"
SMPPPD_BIN_DIR=/work/sms
SMPPPD_PID_FILE=/var/run/sms.pid
SMPPPD_PID=/var/run/sms.pid
SMPPPD_BIN=$SMPPPD_BIN_DIR/$SMPPPD
#PID=`ps -aef | grep "$SMPPPD" | grep -v grep | awk '{print $2}'`
# Source LSB init functions
# providing start_daemon, killproc, pidofproc,
# log_success_msg, log_failure_msg and log_warning_msg.
# This is currently not used by UnitedLinux based distributions and
# not needed for init scripts for UnitedLinux only. If it is used,
# the functions from rc.status should not be sourced or used.
#. /lib/lsb/init-functions


test -x $SMPPPD_BIN || { echo "$SMPPPD_BIN not installed";
    if [ "$1" = "stop" ]; then exit 0;
    else exit 5; fi; }

# Shell functions sourced from /etc/rc.status:
#      rc_check         check and set local and overall rc status
#      rc_status        check and set local and overall rc status
#      rc_status -v     be verbose in local rc status and clear it afterwards
#      rc_status -v -r  ditto and clear both the local and overall rc status
#      rc_status -s     display "skipped" and exit with status 3
#      rc_status -u     display "unused" and exit with status 3
#      rc_failed        set local and overall rc status to failed
#      rc_failed <num>  set local and overall rc status to <num>
#      rc_reset         clear both the local and overall rc status
#      rc_exit          exit appropriate to overall rc status
#      rc_active        checks whether a service is activated by symlinks
#      rc_splash arg    sets the boot splash screen to arg (if active)
. /etc/rc.status

# Reset status of this service
rc_reset

# Return values acc. to LSB for all commands but status:
# 0      - success
# 1       - generic or unspecified error
# 2       - invalid or excess argument(s)
# 3       - unimplemented feature (e.g. "reload")
# 4       - user had insufficient privileges
# 5       - program is not installed
# 6       - program is not configured
# 7       - program is not running
# 8--199  - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signaling is not supported) are
# considered a success.

case "$1" in
    start)
    echo -n "Starting SMPPPD"
    startproc $SMPPPD_BIN
    rc_status -v
    ;;
    stop)
    echo -n "Shutting down SMPPPD"
    killproc $SMPPPD_BIN
    rc_status -v
    ;;
    try-restart)
    $0 status >/dev/null &&  $0 restart
    rc_status
    ;;
    restart)
    $0 stop
    $0 start
    rc_status
    ;;
    status)
    echo -n "Checking for SMPPPD: "
    ## Check status with checkproc(8), if process is running
    ## checkproc will return with exit status 0.

    # Status has a slightly different for the status command:
    # 0 - service running
    # 1 - service dead, but /var/run/  pid  file exists
    # 2 - service dead, but /var/lock/ lock file exists
    # 3 - service not running

    # NOTE: checkproc returns LSB compliant status values.
    checkproc $SMPPPD_BIN
    rc_status -v
    ;;
   force-reload)
    ## Signal the daemon to reload its config. Most daemons
    ## do this on signal 1 (SIGHUP).
    ## If it does not support it, restart.
    echo -n "Reload service SMPPPD"
    echo ""
    $0 stop  &&  $0 start
    rc_status
    ;;
    probe)
    test $SMPPPD_PID_FILE && \
         echo restart
    ;;
    *)
    echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
    ;;
esac
rc_exit
====================================================================================

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

21. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 06-Июн-08, 10:11 
>[оверквотинг удален]
>>>Заранее спасибо;)
>>
>>SMPPPD_BIN= /work/sms/sms.sh
>>
>>а так:
>>
>>ps ax | grep sms.sh
>
>Попробуй этот скрипт:
>

Твой скрипт норально пашет и мой тоже по ходу но как видно по ЛОГАМ boot.msg
Скрипт грузится раньше чем модули... Например модель DBI:MYSQL Грузится раньше чем мой sms.sh а sms.sh использует DBI:MYSQL

Помоги что бы я загрузил модули раньше чем скрипт


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

22. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от angra (ok) on 06-Июн-08, 10:18 
Как бы так потактичней вам намекнуть, что на старте системы модули перла никуда не загружаются, более того вообще не существует такого отдельного действия. Загрузка модулей осуществляется интерпретатором perl в момент исполнение скрипта. Другое дело, если вы пытаетесь обратится к базе до загрузки mysqld, но тут уже ССЗБ, указывайте правильный порядок загрузки.  

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

23. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 06-Июн-08, 10:36 
>Как бы так потактичней вам намекнуть, что на старте системы модули перла
>никуда не загружаются, более того вообще не существует такого отдельного действия.
>Загрузка модулей осуществляется интерпретатором perl в момент исполнение скрипта. Другое дело,
>если вы пытаетесь обратится к базе до загрузки mysqld, но тут
>уже ССЗБ, указывайте правильный порядок загрузки.

нуууу в принципе ты прав...... но вот смотри какая фишка получается с mysql

сам mysqld я запускаю через boot.local - это что то типа RC.config

а на сколько я понимаю система сначало грузит все то что в boot.local(RC.config) а потом только начинает копатся в RC.x

ОШИБКА при boot (boob.msg):

install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/lib/perl5/5.8.7/i586-linux-thread-multi /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at (eval 1) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: DBM, ExampleP, File, Proxy, Sponge.
at /work/sms/perl.pl line 5


Заранее благодарен за ХЕЛП ;)

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

24. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от angra (ok) on 06-Июн-08, 11:12 
Вот это уже интересней. Возможных причин вижу две
1. В систему DBD::mysql не установлен и просто лежит в том же каталоге, откуда вы запускаете скрипт вручную, в результате при автозапуске мы имеем другой рабочий каталог и соответственно не находим DBD/mysql.pm. Проверить можно при помощи find/locate, запуска скрипта из /
2. На этапе запуска скрипта еще не смонтированы находящиеся в отдельном разделе /usr или /usr/lib. Можно решить переносом нужных модулей в директорию скрипта и принудительным chdir в эту директорию в начале скрипта.


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

25. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 10-Июн-08, 13:31 
>Вот это уже интересней. Возможных причин вижу две
>1. В систему DBD::mysql не установлен и просто лежит в том же
>каталоге, откуда вы запускаете скрипт вручную, в результате при автозапуске мы
>имеем другой рабочий каталог и соответственно не находим DBD/mysql.pm. Проверить можно
>при помощи find/locate, запуска скрипта из /
>2. На этапе запуска скрипта еще не смонтированы находящиеся в отдельном разделе
>/usr или /usr/lib. Можно решить переносом нужных модулей в директорию скрипта
>и принудительным chdir в эту директорию в начале скрипта.

1. В сестеме DBD::mysql установлен и находится в /usr/local/lib/perl5/site_perl/5.10.0/i686-linux/DBD

2. Можно ли про 2-ой вариант поподробнее пожалуйста......

Заранее спасибо...

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

26. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 10-Июн-08, 14:56 
Ребята помоги плиззззз с этим вопрос мы его почти уже добили совсем чуть-чуть осталось..... я вот думаю может как то надо запустить PERL dev????? Даже не знаю.... помогите плизззз....


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

27. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от angra (ok) on 11-Июн-08, 18:08 
Остановимся пока на первом
>1. В сестеме DBD::mysql установлен и находится в /usr/local/lib/perl5/site_perl/5.10.0/i686-linux/DBD

А теперь найдите эту(/usr/local/lib/perl5/site_perl/5.10.0/i686-linux/) директорию в списке:
/usr/lib/perl5/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/5.8.7
/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl
Похоже у вас в системе вообще две версии перла стоят еще и собранные под разные архитектуры.  Покажите ради интереса что выводит rpm -qa| grep perl и припомните не ставилили ли вы(или другой админ) перл напрямую из исходников минуя rpm


Если хотите быстрое решение то можете попробовать скопировать(или симлинк кинуть) /usr/local/lib/perl5/site_perl/5.10.0/i686-linux/DBD в каталог со скриптом (а точнее в каталог, который будет рабочим в момент запуска скрипта) модули всегда ищутся не только в том что в @INC, но в текущем каталоге тоже. Есть правда шанс что модуль от 5.8.10, не заработает в 5.8.8, но попробовать стоит, только не забудьте что это временное решение и лучше разобраться с бардаком версий на машине.


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

16. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 05-Июн-08, 10:27 
>>>Тупо возьми и посмотри как mrtg запускается и сделай так же.
>>
>>/etc/init.d/myprogram в студию!
>
>А что говорит:
>
>which my_script.pl

Походу я нашёл ошибку..... там в логах пишет что не может найти SMPP а скрипт использует SMPP модуль по ходу скрипт грузится раньше чем модуль SMPP

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

12. "Автозагрузк Perl скритпа  в SUSE 10.2"  
Сообщение от DarkTj email on 05-Июн-08, 10:12 
>>Тупо возьми и посмотри как mrtg запускается и сделай так же.

#! /bin/sh

## BEGIN INIT INFO
# Provides:       sms
# Required-Start: $remote_fs $network $syslog
# Should-Start:   isdn $named slpd
# Required-Stop:  $remote_fs $network $syslog
# Should-Stop:    isdn $named slpd
# Default-Start:  2 3 5
# Default-Stop:   0 1 6
# Description:    Start the sms.
### END INIT INFO

SMPPPD_BIN= /work/sms/sms.sh


test -x $SMPPPD_BIN || exit 5

. /etc/rc.status

rc_reset

case "$1" in
    start)
    echo -n "Starting SMS"
    ## Start daemon with startproc(8). If this fails
    ## the echo return value is set appropriate.

    # NOTE: startproc return 0, even if service is
    # already running to match LSB spec.
    $SMPPPD_BIN
    
    # Remember status and be verbose
    rc_status -v
    ;;
    stop)
    echo -n "Shutting down SMS"
    ## Stop daemon with killproc(8) and if this fails
    ## set echo the echo return value.

    killall perl

    # Remember status and be verbose
    rc_status -v
    ;;
    try-restart)
    ## Stop the service and if this succeeds (i.e. the
    ## service was running before), start it again.
    ## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
    $0 status >/dev/null &&  $0 restart

    # Remember status and be quiet
    rc_status
    ;;
    restart)
    ## Stop the service and regardless of whether it was
    ## running or not, start it again.
    $0 stop
    $0 start

    # Remember status and be quiet
    rc_status
    ;;
    reload)
    ## Like force-reload, but if daemon does not support
    ## signalling, do nothing (!)

    # If it supports signalling:
    echo -n "Reload service SMS"
    killall perl
    rc_status -v
    ;;
    status)
    echo -n "Checking for SMS: "
    ## Check status with checkproc(8), if process is running
    ## checkproc will return with exit status 0.

    # Status has a slightly different for the status command:
    # 0 - service running
    # 1 - service dead, but /var/run/  pid  file exists
    # 2 - service dead, but /var/lock/ lock file exists
    # 3 - service not running

    # NOTE: checkproc returns LSB compliant status values.
    pidofproc perl
    rc_status -v
    ;;
    *)
    echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
    exit 1
    ;;
esac
rc_exit


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

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

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




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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