在特定的时间内运行命令

Sev*_*Tux 5 command-line bash

有没有办法在特定的时间内运行命令然后杀死它?

示例 1:

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

示例 2:

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

Arr*_*cal 7

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

timeout 1m cvlc-command
Run Code Online (Sandbox Code Playgroud)

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

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

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