当前位置: 技术问答>linux和unix
求写SHELL脚本
来源: 互联网 发布时间:2016-04-20
本文导语: 首先 我用 ps -ux 查看UNIX进程, 结果如下 Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 1 8690 0.0 0.0 20084 1544 ?...
首先
我用 ps -ux 查看UNIX进程, 结果如下
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1 8690 0.0 0.0 20084 1544 ? S 08:33 0:00 sshd: edcdev1@notty
1 8691 0.0 0.0 12868 1416 ? Ss 08:33 0:00 /usr/local/openssh-4.7p1/libexec/sftp
1 8717 0.0 0.0 19948 1456 ? S 08:35 0:00 sshd: edcdev1@pts/2
1 8718 0.0 0.0 55128 1692 pts/2 Ss 08:35 0:00 -bash
1 10890 0.0 0.0 53916 1172 pts/2 S 11:34 0:00 /bin/sh /usr/local/jboss_edc_dev1/bin
1 10898 2.0 6.5 1542216 263592 pts/2 Sl 11:34 0:59 /usr/local/jdk/bin/java -server -Xms1
1 11852 0.0 0.0 5448 792 pts/2 R+ 12:23 0:00 ps -ux
然后用kill -9 10890 10898 结束跟JBOSS和JAVA 有关的进程
最后用startJboss.sh重进服务器,
怎么把这三个命令写成一个脚本呢
我用 ps -ux 查看UNIX进程, 结果如下
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1 8690 0.0 0.0 20084 1544 ? S 08:33 0:00 sshd: edcdev1@notty
1 8691 0.0 0.0 12868 1416 ? Ss 08:33 0:00 /usr/local/openssh-4.7p1/libexec/sftp
1 8717 0.0 0.0 19948 1456 ? S 08:35 0:00 sshd: edcdev1@pts/2
1 8718 0.0 0.0 55128 1692 pts/2 Ss 08:35 0:00 -bash
1 10890 0.0 0.0 53916 1172 pts/2 S 11:34 0:00 /bin/sh /usr/local/jboss_edc_dev1/bin
1 10898 2.0 6.5 1542216 263592 pts/2 Sl 11:34 0:59 /usr/local/jdk/bin/java -server -Xms1
1 11852 0.0 0.0 5448 792 pts/2 R+ 12:23 0:00 ps -ux
然后用kill -9 10890 10898 结束跟JBOSS和JAVA 有关的进程
最后用startJboss.sh重进服务器,
怎么把这三个命令写成一个脚本呢
|
for pid in `ps -ux | grep -E '*jboss*|*java*' | awk '{print $2}'`
do
kill $pid
done
sh startJboss.sh
do
kill $pid
done
sh startJboss.sh
|
do
kill $pid
done
改为
do
[ "$pid" != "" ] && kill $pid
done
kill $pid
done
改为
do
[ "$pid" != "" ] && kill $pid
done
|
出现警告估计是因为ps的选项加了一个'-'了,把这个'-'去掉就没事了。
但是为什么会匹配出一个./test.sh的进程就不知道是怎么回事了。
for pid in `ps ux | grep -E '*jboss*|*java*' | awk '{print $2}'`
do
kill -9 $pid 2>/dev/null
done
sh startJboss.sh
|
可以用xargs嘛,改一下楼上的
ps ux | grep -E '*jboss*|*java*' | awk '{print $2}'|xargs kill -9
ps ux | grep -E '*jboss*|*java*' | awk '{print $2}'|xargs kill -9