强制停止shell脚本(shell如何停止一条指令)

本文目录
shell如何停止一条指令
ctrl+z
挂起当前进程
如果需要恢复到前台输入fg,恢复到后台输入bg
ctrl+c,彻底终止该进程
linux上flock用独占锁运行的shell脚本超时后,如何让它自动强制结束
大前提,你用的是bash,其他shell应该也有类似的任务管理功能,具体你自己去查。
简单说一下思路,假定你那个有 flock 的脚本叫 a.sh, 你不要直接在crontab中调用 a.sh,而是调用另外一个脚本,比如 main.sh,main.sh 应该长成这个样子
#!/bin/bash
# 启动 a.sh
/path/to/a.sh &
# 每秒钟检查一下 a.sh 是否结束,如果结束,则退出当前进程,如果10秒钟后a.sh仍未结束,则kill掉它
for (( x=0; x《10; x++ )); do
sleep 1
# 检查a.sh 任务是否存在
jobs %1 2》/dev/null
if ; then
# a.sh 已经结束
exit 0
fi
done
# 超时,kill 掉 a.sh
kill -9 %1
如上面的注释,main.sh 后台启动 a.sh 后,在10秒内不断的检查这个任务是否还在运行,如果不在了,那说明 a.sh 已经结束了,那 main.sh 也可以结束。如果超时,则强行杀掉 a.sh。
如何用java终止正在执行的shell脚本
// 用法:Runtime.getRuntime().exec("命令");
String shpath="/test/test.sh"; //程序路径
Process process =null;
String command1 = “chmod 777 ” + shpath;
try {
Runtime.getRuntime().exec(command1 ).waitFor();
} catch (IOException e1) {
e1.printStackTrace();
}catch (InterruptedException e) {
e.printStackTrace();
}
shell脚本执行kill命令后自动停止的问题
背景:每周重启jenkins
所以写了一个脚本,命名为 auto_restart_jenkins.sh
其中里面包含了一个kill命令:ps -ef | grep jenkins | grep -v grep | awk ’{print "kill -9 "$2}’ | sh
但是每次执行到这一步的时候整个shell脚本就被kill掉了。
原因:因为shell脚本名中包含了jenkins,所以在执行kill命令的时候,也就把shell脚本kill掉了。
最后,改一下shell脚本名就好了,不要包含jenkins
或者在shell脚本中添加参数 export BUILD_ID=dontKillMe

更多文章:
revised version(求谢尔盖·普罗科菲耶夫 C大调钢琴奏鸣曲 作品编号135之5曲目介绍!!!)
2026年1月26日 03:00
layout动画(三维动画中角色动画LAYOUT之后,关键帧调完这个过程叫什么)
2025年7月19日 19:45
oracle递归(oracle递归查询的问题,如何查询出现机构和其属下所有机构)
2026年8月22日 05:15
字符常量和字符串常量有什么区别(字符型常量和字符串常量的用法是什么区别)
2025年10月21日 18:30
周杰伦新专辑先行曲(周杰伦新专辑《最伟大的作品》先行曲MV上线,MV里都邂逅了哪些艺术家)
2025年11月26日 21:15
用javascript写表单代码(如何通过javascript脚本在一个HTML页面上创建一个表格,并且能对表格内容进行编辑)
2025年7月23日 21:30
html中无序列表怎么空格(html怎么把无序列表的文字变成一行)
2026年1月29日 20:00
sqlserver怎么连接(怎么连接sqlserver数据库)
2026年2月12日 00:30
千图网的素材可商用吗?在免费素材网站(千图网)下载的素材用到公司的宣传单张之类的东西上算侵权吗
2025年12月7日 19:15
selected腰带(5元到5000元,男士皮带这么选准没错)
2026年8月24日 13:00
consecutive和constant(constantly,consecutive 不同)
2026年6月5日 00:15
normalstartup什么意思(电脑tointerruptnormalstartup)
2026年8月6日 20:45










