在特定时间内运行命令

在特定时间内运行命令

有没有办法运行一个命令特定一段时间然后终止它?

例1:

我想播放一首歌曲cvlc1 分钟然后停止。(歌曲长度超过 1 分钟)。

例子2:

我想运行该命令cmatrix30 秒然后停止它。

答案1

timeout命令就是为此而构建的。要运行cvlc命令 1 分钟:

timeout 1m cvlc-command

时间段可以使用字符串 d 表示天、h 表示小时、m 表示分钟、s 表示秒。如果没有给出时间测量字母,则默认为秒。

一个有用的选项是,--preserve-status这将使超时命令以受控命令的状态代码退出,即使它被终止。如果不使用此选项,则如果没有发生超时,状态代码将是受控命令的状态代码,如果命令超时,则状态代码为 124。

如果你需要非常确定服务是否已停止,另一个有用的选项是使用,--kill-after=<time>如果命令在时间设置的新限制内没有停止,它将向命令发送另一个终止信号

相关内容