有没有办法运行一个命令特定一段时间然后终止它?
例1:
我想播放一首歌曲cvlc
1 分钟然后停止。(歌曲长度超过 1 分钟)。
例子2:
我想运行该命令cmatrix
30 秒然后停止它。
答案1
该timeout
命令就是为此而构建的。要运行cvlc
命令 1 分钟:
timeout 1m cvlc-command
时间段可以使用字符串 d 表示天、h 表示小时、m 表示分钟、s 表示秒。如果没有给出时间测量字母,则默认为秒。
一个有用的选项是,--preserve-status
这将使超时命令以受控命令的状态代码退出,即使它被终止。如果不使用此选项,则如果没有发生超时,状态代码将是受控命令的状态代码,如果命令超时,则状态代码为 124。
如果你需要非常确定服务是否已停止,另一个有用的选项是使用,--kill-after=<time>
如果命令在时间设置的新限制内没有停止,它将向命令发送另一个终止信号