准备 mygo.go
package main
import (
"fmt"
"os"
"syscall"
"time"
)
func main() {
for {
time.Sleep(time.Second)
fmt.Println("name", os.Args[0])
fmt.Println("os.Getpid", os.Getpid())
fmt.Println("syscall.Getpid", syscall.Getpid())
}
}
可以直接测试 ./mygo 也可以./mygo>1.txt
死循环+if
无需传参 很简单!
#!/system/bin/sh
while true
do
procnum=`ps -ef| grep rpi_gw |grep -v grep |wc -l`
if [ $procnum -eq 0 ]; then
echo "Die rpi_gw"
else
echo "Runing rpi_gw"
fi
sleep 3
done
死循环+if+带参+参数数目+退出不是return+date+注释
date就可以打印出当前时间:[root@samba ~]# date
2015年 07月 07日 星期二 23:33:41 CST 不喜欢可以换一下格式:
[root@samba ~]# date +%F" "%H:%M:%S
2015-07-07 23:34:08 换成脚本就是
#!/bin/bash
date +%F" "%H:%M:%S
#!/system/bin/sh
#处理传入参数
echo "all parm num:$#"
if [ $# -ne 1 ]; then
echo "cmd with a TARGETTOKILL"
exit 1
fi
#提示
TARGETTOSAVE="mygo"
TARGETTOKILL=$1
echo "TARGETTOSAVE--$TARGETTOSAVE"
echo "TARGETTOKILL--$TARGETTOKILL"
#死循环
while true
do
#任务 有 就杀死它 需要是传入的 全名!
procid=$(pgrep $TARGETTOKILL)
if [ -z "$procid" ]
then
echo "T1-Not Runing $TARGETTOKILL Do Nothing"
else
echo "T1-Runing $TARGETTOKILL id $procid KILL it!"
kill $procid
fi
#任务 没有 就使能它 不需要全名
procnum=`ps -ef| grep $TARGETTOSAVE |grep -v grep |wc -l`
if [ $procnum -eq 0 ]
then
echo "T2-Die $TARGETTOSAVE Go Actice it"
cd /home/pi
./mygo
else
echo "T2-Runing $TARGETTOSAVE $procnum Do Nothing"
fi
sleep 3
#时间
date +%F" "%H:%M:%S
done
测试 后者比较麻烦 由其新启终端执行 他说已经有了 就不执行
觉得放弃后者 就用一个来做!
不知道怎么打印出来第二种的显示
以后再说吧
用这个
#!/system/bin/sh
#处理传入参数
echo "all parm num:$#"
if [ $# -ne 1 ]; then
echo "cmd with a TARGETTOKILL"
exit 1
fi
#提示
TARGETTOSAVE="mygo"
TARGETTOKILL=$1
echo "TARGETTOSAVE--$TARGETTOSAVE"
echo "TARGETTOKILL--$TARGETTOKILL"
#死循环
while true
do
#任务 有 就杀死它 需要是传入的 全名!
procid=$(pgrep $TARGETTOKILL)
if [ -z "$procid" ]
then
echo "T1-Not Runing $TARGETTOKILL Do Nothing"
else
echo "T1-Runing $TARGETTOKILL id $procid KILL it!"
kill $procid
fi
#任务 没有 就使能它 不需要全名
#procnum=`ps -ef| grep $TARGETTOSAVE |grep -v grep |wc -l`
#if [ $procnum -eq 0 ]
procnum=$(pgrep $TARGETTOSAVE)
if [ -z "$procnum" ]
then
echo "T2-Die $TARGETTOSAVE Go Actice it"
cd /home/pi
./mygo
else
echo "T2-Runing $TARGETTOSAVE $procnum Do Nothing"
fi
sleep 3
#时间
date +%F" "%H:%M:%S
done



