我正在尝试在我的脚本中使用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
}
我的错误是什么?
答案 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。