曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4112|回复: 0
打印 上一主题 下一主题

在脚本里管理另外一个脚本

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2009-7-8 20:49:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求:过执行2.sh来运行1.sh,当到达设定的时间点时候,杀掉1.sh,1分钟之后重新启动1.sh起到一个定时重启的作用。
测试代码
#!/bin/sh
flag=0
plan_hour=19
plan_minutes=47
plan_time=`echo -n "$plan_hour";echo -n "$plan_minutes"`
clear

while true
do
hour=`date +"%H"`
minutes=`date +"%M"`
seconds=`date +"%S"`
time1=`echo -n "$hour";echo -n "$minutes"`
clear
echo -n "现在的时间为: "
echo -n $hour
echo -n :
echo -n $minutes
echo -n :
echo -n $seconds

if [ "$time1" -eq "$plan_time" ]; then
flag=1
clear
echo -n "3秒后关闭 1.sh"
sleep 3
ps -ef|grep "sh 1.sh"|grep -v grep|awk '{print $2}'|xargs kill
clear
echo "1.sh 已经结束;2.sh 1分钟后唤醒 1.sh"
sleep 59
fi

#plan_minutes=$(($plan_minutes+1))
#if [ $plan_minutes -eq 60 ]; then
#    plan_hour=$(($plan_hour+1))
#    plan_minutes=0;
#    if [ $plan_hour -eq 24 ]; then
#        plan_hour=0
#    fi
#fi

sleep 1
if [ $flag -eq 1 ]; then
    sh 1.sh
    exit 0
fi


done
说明
脚本一开始预定关闭 1.sh 的时间。
在未到定时时,就显式时间。
定时时间到,给出杀死 1.sh 的提示,3秒后杀死,然后再 1 分钟后再唤醒 1.sh 进程。唤醒 1.sh 后,2.sh 也就跟着退出了。
xargs 是从标准标准输入重建并执行命令行。在上面就是将过滤出来的 1.sh 的 PID 值重建,传递给 kill 来执行。
grep 中的 -v 参数是不匹配的意思。
这里注意一点,原来用 time 做变量,老是出错,是因为 time 本身就是一个命令。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 04:44 , Processed in 0.077734 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表