LINUX杀掉指定进程 脚本 守护进程

很多时候,可以看到命令

ps -ef|grep gogs | grep -v grep | wc -l

其中的grep -v grep 是干啥的呢 ?

很简单 ,为了去除包含grep的进程行 ,避免影响最终数据的正确性 。

ps -aux  == ps -ef 只是

显示风格不同 

因为会把刚刚执行的这个也查找出来 所以剔除它就是

 追加wc -l 是记录数量 一共3个

另外一个工具

方式1

查找指定进程并杀死 - 6小贱 - 博客园

方式2

while循环语句 while-do-done_blue$boy的博客-CSDN博客

代码


while true
do
   hci_ps=$(pgrep -f btattach)
   if [ -z "$hci_ps" ]
   then
      echo "No bttach process"
   else
      echo "Bttach process active, kill it"
      kill $hci_ps
   fi
   #btattach -N -B /dev/ttyAMA1 -S 921600 &
   sleep 1 # delay 1 sec for attach hci device
   procnum=`ps -ef| grep rpi_gw |grep -v grep |wc -l`
   if [ $procnum -eq 0 ]; then
       cd /home/pi/m_izar_rpi_gw
        echo 53029625 | sudo echo 6 > /sys/kernel/debug/bluetooth/hci1/conn_min_interval
        echo 53029625 | sudo echo 7 > /sys/kernel/debug/bluetooth/hci1/conn_max_interval
       ./rpi_gw hci1 -b64
       echo "Reboot RPI GW"
       echo 53029625 | sudo -S service bluetooth restart

   fi
   sleep 3
done

注意 系统只有hci0 没有hci1 上诉有问题

写一个脚本 开机启动 一旦发现main.go程序运行 就杀死它

1--怎么开机启动 守护进程


树莓派程序开机自启动方法总结

守护(Daemon)进程

2--怎么死循环 

3--怎么找到进程ID

直接拿到进程号

Daemon.bash


while true
do
   ps=$(pgrep -f main)
   if [ -z "$ps" ]
   then
      echo "No main process"
   else
      echo "main process active, kill it"
      kill $ps
   fi

   sleep 3
done

百度 shell if条件判断中的-z到-d的意思

 

package main

import (
	"fmt"
	"time"
)

func main() {

	for {
		time.Sleep(time.Second)
		fmt.Println("HELLO")
	}
}

 go build main。g

。/main

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值