内容如下: #!/bin/bash TOMCATPATH=/usr/local/tomcat while (true) do if (ps -ef | grep tomcat | grep -v grep > /dev/null) then sleep 30 else data=$(date "+%F %u %H:%M:%S ") $TOMCATPATH/bin/startup.sh &> /dev/null & echo "$data tomcat restart again" >> $TOMCATPATH/tom...
by aredfox - Shell - 2012-09-24 11:25:31 阅读(5829) 回复(9)
假设我执行了一个脚本:nohup sh test.sh & test.sh内容是java command,比如/usr/bin/java .....,这样会有两个进程,一个是test.sh,另一个是java的进程.我如何才能在shell里同时杀掉这两个进程呢,现在的操作比较麻烦,ps -ef|grep test.sh查出父进程号,然后再根据父进程号查出子进程好,最后用kill -9 杀掉这两个进程.有没有办法用shell实现,不要手工执行呢?
脚本如下: echo $1 par1=$1 pid=`ps -ef |awk '$9=="$par1"'|cut -d' ' -f6,7` echo $pid kill $pid 上面的脚本有两个问题: 1:我用命令行参数带进来好象不行,如果把$par1替换成具体的进程中的内容就可以成功。 2:cut的时候如果直接用 -f2 系统区分行中的域不是以tab来分割的,所以只好强制用空格如-d' ',这样本来是-f2的变成了-f6,7 因为进程号有的是4位有的是5位,但是前面的$9却总是对的。 请高手指教!
在一个shell脚本中有一个语句的执行时间不能确定,而我去希望在规定的时间内完成,如果不能完成就杀死这个进程,就是杀死那个语句的进程,不知道这种情况如何处理?
1、当前目录下有40个规则文件(后缀为.rule)以及各个规则文件对应的规则加载失败信息文件(后缀名为.rule.fail) 例如:规则文件POP3.rule对应的规则加载失败信息文件为POP3.rule.fail 2、rulelist文件的内容是40个规则文件名的集合,具体内容是: POP.rule POP3.rule DNS.rule SNMP.rule ..... ..... ..... 3、fail.txt文件的内容是规则加载失败信息文件名的集合,具体内容为: POP.rule.fail POP3.rule...
在linux,/etc/init.d/syslog脚本中代码如下: if [ -f /etc/sysconfig/syslog ] ; then . /etc/sysconfig/syslog 请问. /代表什么?(.后边空格后加的斜杠,不是./代表的当前目录) 谢谢
id=`getent group|grep "$group"|awk -F: '{print $3}'` if [[ -n $id ]] then if [[ -e /home/user_folder ]] then setfacl -m g:$id:r-x /home/user_folder else echo "No Such dir" 中的[[]]如何理解?
编写shell程序文件sha,存放在软盘根目录下,程序功能要求如下: (1)清屏 (2)当程序运行时,屏幕显示如下形式的信息: ************* * This is a shell program…* ************* (3)如果sha运行时未带参数,则在屏幕上显示信息“ERROR1”;如果sha运行时只带一个参数,则在屏幕上显示信息“ERROR2”;如果带两个不同的参数且参数1所指定的文件存在,则将参数1所指...