我有一个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块。命令用';‘分隔。
发布于 2021-12-31 20:48:41
建议将代码调试为一个简单的bash
脚本。
bash-script.sh
#!/bin/bash
chmod +x command.sh;
chmod +x command2.sh;
./command.sh &
./command2.sh
运行脚本后,尝试使用pkill
命令杀死您的命令。
类似于:
pkill -9 -f "command.sh"
看看要多久才能杀死它。
如果太久的话。从命令行中运行./command.sh,并尝试使用上面的pkill
命令再次杀死它。如果还需要很长时间。
问题在于command.sh
脚本处理来自操作系统的SIGKILL信号,您应该研究command.sh
命令行参数,使它能够捕获SIGKILL信号。
https://stackoverflow.com/questions/70381312
复制相似问题