解决linux中timeout命令不能ctrl+c掉的问题

先上函数fun:

fun(){
        sleep 2
        kill `ps -ef | grep $0 | sed -n '1'p |awk '{print $2}'`
}

echo 1
echo 2
echo 3
fun
sleep 6
echo 4
echo 5

使用curl访问网页源码或者。。。。
描述到一半发现写错了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在shell脚本添加timeout命令来执行ffmpeg命令可能会导致执行不成功的问题。这是因为timeout命令会发送一个终止信号给ffmpeg进程,但ffmpeg可能无法正确处理该信号而导致执行失败。 解决这个问题的方法是使用包装脚本来执行ffmpeg命令,并在包装脚本使用trap命令来捕获终止信号并正确处理。 以下是一个示例的包装脚本,你可以根据自己的需求进行修改: ```shell #!/bin/bash function cleanup { # 处理终止信号的逻辑 # 可以在这里停止ffmpeg进程或进行其他清理操作 echo "Received termination signal. Cleaning up..." # 停止ffmpeg进程的示例命令 kill -SIGTERM $FFMPEG_PID exit 1 } # 捕获终止信号并调用cleanup函数 trap cleanup SIGINT SIGTERM # 执行ffmpeg命令,并将其进程ID保存到变量 ffmpeg <your-ffmpeg-arguments> & FFMPEG_PID=$! # 等待ffmpeg进程结束 wait $FFMPEG_PID # 检查ffmpeg的退出状态码,根据需要进行处理 if [ $? -eq 0 ]; then echo "FFmpeg command executed successfully." else echo "FFmpeg command failed." fi # 清理操作(如果有的话) # ... exit 0 ``` 你需要将`<your-ffmpeg-arguments>`替换为你实际的ffmpeg命令及其参数。这个包装脚本会捕获终止信号(如Ctrl+C)并执行相应的清理操作,然后等待ffmpeg进程结束并检查其退出状态码。 希望这个解决方案能够帮助你解决问题!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值