首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用一个非常大的shell脚本强制杀死子进程

使用一个非常大的shell脚本强制杀死子进程
EN

Stack Overflow用户
提问于 2021-12-16 15:08:58
回答 1查看 62关注 0票数 1

我有一个80.000字符的大型外壳脚本,另一个更小的。

我正和执行员一起执行,我得到了PID。execa(`chmod +x command.sh; chmod +x command2.sh; ./command.sh & ./command2.sh`, {shell: true, detached: true}

离开一个选项卡后,我将在该子进程上执行exec(kill -9 ${pid})。大概要3-4分钟才能杀死它。我怎么才能优化这个?我能马上杀了它吗?在3-4分钟的时间,它试图关闭,它需要大量的CPU力量。

随访信息

所以我有两个shell脚本。

一个用于音频流,另一个用于视频流。

我使用&在同一时间执行它们,因为在播放视频时,我同时需要音频和视频。

audioStream.sh只是一个输出hls音频块的ffmpeg命令。

videoStream.sh包含400个用边框转换图像的ImageMagick命令和85个ffmpeg命令,这些命令输出进入视频播放器的m3u8主播放列表中的视频hls块。命令用';‘分隔。

EN

回答 1

Stack Overflow用户

发布于 2021-12-31 20:48:41

建议将代码调试为一个简单的bash脚本。

bash-script.sh

代码语言:javascript
运行
复制
#!/bin/bash

chmod +x command.sh; 
chmod +x command2.sh; 
./command.sh & 
./command2.sh

运行脚本后,尝试使用pkill命令杀死您的命令。

类似于:

代码语言:javascript
运行
复制
 pkill -9 -f "command.sh"

看看要多久才能杀死它。

如果太久的话。从命令行中运行./command.sh,并尝试使用上面的pkill命令再次杀死它。如果还需要很长时间。

问题在于command.sh脚本处理来自操作系统的SIGKILL信号,您应该研究command.sh命令行参数,使它能够捕获SIGKILL信号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70381312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档