【发布时间】:2012-10-28 12:16:54
【问题描述】:
我已经为 tomcat 编写了一个监控脚本,它检查 tomcat/bin/bootstrap.jar 是否正在运行。
ps ax -o cmd|grep tomcat/bin/bootstrap.jar |grep -v grep | awk {'print $1'}
此命令在终端中运行时工作正常,但来自init.d ps ax -o cmd 仅提供部分输出。
"/usr/bin/java -Djava.util.logging.config.file=/home/webserver/tomcat/"
其实应该是
"/usr/bin/java -Djava.util.logging.config.file=/home/webserver/tomcat/conf/logging.properties -Dsun.net.inetaddr.ttl=30 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx650m -Djava.endorsed.dirs=/home/webserver/tomcat/endorsed -classpath /home/webserver/tomcat/bin/bootstrap.jar -Dcatalina.base=/home/webserver/tomcat -Dcatalina.home=/home/webserver/tomcat -Djava.io.tmpdir=/home/webserver/tomcat/temp org.apache.catalina.startup.Bootstrap start"
init.d 脚本是否限制命令输出长度?我怎样才能让它工作?
操作系统:Debian(在 RedHat 机器上运行良好)
【问题讨论】:
-
阅读手册页对
args格式说明符的描述(cmd是args的同义词),看看它是如何确定输出宽度的。