只运行一个loop脚本

#!/bin/bash
dir=$(dirname $(readlink -f "$0"))
full=$(readlink -f "$0")
name=$(basename $(readlink -f "$0"))
cd $dir

if [ "$1" != "runing" ] 
then
rm -f run_tmp.sh
echo "function mykill()
{
while :
do
        killPid=\`ps -ef |grep \"\$1\" |grep -v grep | awk '{print \$2}'\`
        if [ \"\$killPid\" != \"\" ]; then
        killall -9 \$1
        kill -9 \$killPid
        else
        break
        fi
done
}">>run_tmp.sh
echo "rm -f $dir/run_tmp.sh">>run_tmp.sh
echo "mykill \"$name\"">>run_tmp.sh
echo "nohup sh $full runing &">>run_tmp.sh
nohup sh $dir/run_tmp.sh &
wait
exit
fi

ps -ef|grep $name
while :
do
echo "---ok---">>run.txt
sleep 1
done

 新的模板

#!/bin/bash

dir=$(dirname $(readlink -f "$0"))
full=$(readlink -f "$0")
name=$(basename $(readlink -f "$0"))
cd $dir

echo $full
md5=`echo -n "$full" |md5sum|awk '{print $1}'`
echo "md5=$md5"
lockdir="/dev/shm/lock/"
lockfile=$lockdir$md5".lock"
echo "lockfile=$lockfile"

if [ "$1" != "runing" ]
then
nohup bash $full runing &
exit
fi

(
kill -9 $$
flock -xn --conflict-exit-code 100 ${fd}
if [ $? == 100 ]; then
echo "flock failed"
exit
fi


mkdir -p $lockdir
echo $full > $lockfile
while :
do
sleep 1
echo `date` >> $dir/ret.txt
done
){fd}<>$dir/live.sh

 

posted on 2019-05-05 10:28  弘道者  阅读(348)  评论(0)    收藏  举报