gpt4 book ai didi

linux - 从另一个脚本停止正在运行的 bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:24 25 4
gpt4 key购买 nike

我有一个名为 first.sh 的脚本,该脚本使用“./second.sh”调用另一个脚本。在 second.sh 中有播放歌曲的命令。例如,second.sh 的内容可能是:

play song1.mp3
play song2.mp3
...

我想在白天的特定时间停止脚本 second.sh,问题是使用 killall(和类似的命令)没有帮助,因为名称当我使用“ps aux”时,脚本“second.sh”没有出现在命令列表中,我只看到“play song1.mp3”,然后在 song2 开始播放后“播放 song2.mp3”。

如何在终端中使用命令停止 second.sh?或者至少将其中的所有命令绑定(bind)到一个进程,以便我可以终止该特定进程?

感谢任何帮助,我尝试了很多在网上找到的想法,但似乎没有任何效果。

最佳答案

因为你说:

at certain times during the day,

我会推荐 crontab

使用crontab -e 并附加以下行

0 12 * * * kill -9 `ps aux | awk '/play/{print $2}'`

这会杀死调用 play

的父 shell

crontab 文件的语法是

m h  dom mon dow   command

地点:

米 - 分钟
h - 小时
dom - 月中的第几天
周一 - 月
dow - 星期几
命令 - 您希望执行的命令。

编辑

或者你可以这样做:

0 12 * * * killall -sSIGSTOP play
0 16 * * * killall -sSIGCONT play

这将暂停所有 play 进程 12 小时到 16 小时。

要求

您需要在系统上启动并运行 cron 守护进程。

关于linux - 从另一个脚本停止正在运行的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34206785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com