Logger命令在CentOS中不起作用?
我试图在我的脚本中使用logger
因为initlog
将被弃用,但它似乎不能在CentOS 5.8中工作,或者我在这里做错了什么。 我使用参数stop
运行此脚本并检入/var/log/messages
,并且它没有出现任何日志。我在CentOS 6.4中试过,它工作正常。Logger命令在CentOS中不起作用?
这里是我的代码部分:
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()
被称为root,因为我可以看到你做了su - program_deployer
来关闭进程。
试试这个,
echo "Stopping $service" | tee -a /var/log/messages
回声输出追加到/ var/log/messages中。
但这种方式不会使用'logger'命令,对吗? – 2013-03-14 18:20:47
这是正确的。该方法没有记录器命令。 – Bilzard 2013-03-14 18:33:23
对于非root用户,直接写入系统日志文件将失败。 – 2013-03-14 20:59:20
在命令行上做了一个简单的** echo test | logger **将任何内容写入syslog? – tink 2013-03-14 19:35:52
这是因为'-t'的说法。记录器工作正常,没有指定标签。似乎是一个'记录器'中的错误。 – remort 2014-02-06 08:47:46