2013-03-14 3 views
1

Я пытаюсь использовать logger в своем сценарии, потому что initlog будет устаревшим, но, похоже, он не работает в CentOS 5.8, или я тут что-то не так. Я запускаю этот скрипт с аргументом stop и регистрируюсь в /var/log/messages, и он не отображается там. Я пробовал в CentOS 6.4, и он отлично работает.Команда Logger не работает в CentOS?

Вот часть моего кода:

stop() { 
    #---------------------------------------------------------------------- 
    # logging the stop 
    #---------------------------------------------------------------------- 
    logger -i "Stopping $service" -t "$service" # it seems not be working 

    #---------------------------------------------------------------------- 
    # getting the process PID 
    #---------------------------------------------------------------------- 
    pid_process=`ps -ef | grep "program.jar" | grep -v grep |awk -F' ' '{ print $2 }'`; 

    if [ $pid_process ]; then 
    action $"Stopping $service: " su - program_deployer -c $shutdown 
    RETVAL=$? 
    else 
    echo "#######################" 
    echo "$service is not running" 
    echo "#######################" 
    fi 

    #---------------------------------------------------------------------- 
    # now, delete the lock file 
    #---------------------------------------------------------------------- 
    rm -f /var/lock/subsys/$service 
    echo 
} 

Что моя ошибка здесь?

+1

делает обычное ** эхо-тест | logger ** в командной строке пишу что-нибудь в syslog? – tink

+0

это из-за аргумента '-t'. Logger отлично работает без указанного тега. Кажется, это ошибка в «logger». – remort

ответ

1

Для меня на CentOS 5.8 он работал, как описано выше. Я отправляю все сообщения *.info на номер /var/log/messages.

Необходимо проверить, что syslog настроен правильно, чтобы отправить эти сообщения в нужную точку назначения, этот syslog запущен и что фактически вызывается функция stop().

Я также предполагаю, что stop() называется root, потому что я вижу, что вы делаете su - program_deployer, чтобы завершить процесс.

-4

Попробуйте это,

echo "Stopping $service" | tee -a /var/log/messages 

Echo выход дописывает/вар/Журнал/сообщений.

+0

, но этот способ не использовал бы команду 'logger', не так ли? –

+0

Это правильно. Этот метод не имеет команды журнала. – Bilzard

+5

Неправильное обращение к файлам системного журнала приведет к сбою. –

Смежные вопросы