Logger命令在CentOS中不起作用?

时间:2013-03-14 17:08:37

标签: linux bash shell logging

我正在尝试在我的脚本中使用logger'因为initlog将被弃用,但它似乎不适用于CentOS 5.8,或者我在这里做错了。 我使用参数stop运行此脚本并检入/var/log/messages并且它没有出现任何日志。我试过在CentOS 6.4中运行正常。

这是我的代码的一部分:

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
}

我的错误是什么?

2 个答案:

答案 0 :(得分:1)

对于我在CentOS 5.8上,它如上所述工作。我将所有*.info条消息发送至/var/log/messages

您应该检查syslog是否已正确配置,以便将这些消息发送到正确的目的地,syslog正在运行以及实际调用了stop()函数。

我还假设stop()被称为root,因为我可以看到你执行su - program_deployer来关闭进程。

答案 1 :(得分:-4)

试试这个,

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

Echo输出附加到/ var / log / messages。