我试图在我的脚本中使用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
来关闭进程。