我试图在我的脚本中使用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
}

我在这里犯了什么错?

最佳答案

对我来说,在centos 5.8上,它的工作方式如上所述。我将所有*.info消息发送到/var/log/messages
您应该检查syslog是否正确配置为将这些消息发送到正确的目标、syslog是否正在运行以及stop()函数是否实际被调用。
我还假设stop()被称为根,因为我可以看到您执行su - program_deployer来关闭进程。

08-16 19:59