1

我正在尝试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
}

我的错误是什么?

4

2 回答 2

1

对我来说,在 CentOS 5.8 上它的工作方式如上所述。我将所有*.info消息发送到/var/log/messages.

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

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

于 2013-03-14T21:42:12.747 回答
-4

试试这个,

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

回显输出附加到 /var/log/messages。

于 2013-03-14T18:02:26.613 回答