linux脚本中防止杀掉当前进程

编程入门 行业动态 更新时间:2024-10-24 21:20:10
本文介绍了linux脚本中防止杀掉当前进程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

问 题

job.sh:

#!/bin/sh cd ~/scripts PATH=$PATH:/usr/local/bin export PATH killall -9 -g job.sh scrapy crawl job

上面的脚本用来执行一个scrapy的抓取任务,通过crontab设置了定时启动,为防止任务重复,会先把老的任务终止:

kill all -9 -g job.sh #希望通过这句话同时关闭job.sh和他导致的scrapy进程

问题是,运行的时候老的被关掉了,当前正在被执行的这个脚本也被停止了,导致下面的scrapy任务没法启动。

怎么破?

解决方案

1、cd ~/scripts/job.sh,这个是什么鬼?cd一个文件?2、 建议脚本不要这样写:先判断上个进程是否存在,如果不存在直接执行脚本

count=`ps -ef|grep job.sh|grep -v grep|wc -l`

如果存在,杀死进程

ps -ef|grep job.sh|grep -v grep |awk -F ' ' '{print $2}'|xargs kill -9

3、不要使用killall,这样会把你当前启动的脚本一并杀死,后面的命令当然也执行不了。

更多推荐

linux脚本中防止杀掉当前进程

本文发布于:2023-11-17 11:48:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1609914.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:脚本   进程   linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!