2012年6月28日

java执行带重定向或管道的shell命令的问题

摘要: 以前没用过java执行shell命令,以为也是像C那样便捷,用个system函数就可以搞定。今天一用才发现不是那么回事。java里面执行shell命令有两种方法:1.使用ProcessBuilderProcessBuilder pb=new ProcessBuilder(cmd);pb.start();2.使用RuntimeRuntime.getRuntime().exec(cmd)但是这个两种方法都有个问题,执行诸如:ps -ef | grep -v grep 带有管道或重定向的命令就会出错。我们都知道使用以上两种方法执行命令时,如果带有参数就要把命令分割成数组或者List传入,不然会被当成 阅读全文
posted @ 2012-06-28 17:52 lisperl 阅读(11004) 评论(0) 推荐(3) 编辑

利用shell脚本监控LXC应用容器内的应用

摘要: 利用lxc-execute启动应用容器后,可以利用lxc自带的lxc-info获取容器的状态,lxc-monitor监控容器状态的变化,但是不能获取容器内应用的信息。这点可以通过结合Linux ps命令和lxc自带的lxc-ps和lxc-cgroup命令来实现。1.首先我们可以通过lxc-ps获取特定容器内需要监控的应用的pid号#usage:get_pid container_name app_namefunction get_pid{ local pid=`lxc-ps -n $1 |grep $2 | awk '{print $2}'|grep -v PID` echo 阅读全文
posted @ 2012-06-28 10:53 lisperl 阅读(3029) 评论(0) 推荐(1) 编辑