一定時間が経過した後にスクリプトでコマンドの実行を終了するには? [コピー]

一定時間が経過した後にスクリプトでコマンドの実行を終了するには? [コピー]

T期間中に無限のコマンド(mp3ファイルの繰り返しなど)を実行したいと思います。

シェルスクリプトmy.shにコマンドを入れました。

#! /bin/bash
vlc /path/to/my.mp3 # will play the file in loop till I terminate it.

それから実行してみます。

my.sh & 
pid="$!" # need to get the pid of the vlc process.
sleep 2.5h
kill $pid 

スクリプトでコマンドを実行するプロセスではなく、シェルスクリプトを実行するプロセスだけを終了するようです。スクリプトでコマンドを実行するプロセスを終了するには?

ありがとうございます。

答え1

注文するtimeoutこの方法。たとえば、

timeout 10m vlc /path/to/my.mp3

10分で殺します。よりマニュアルページ追加のオプションを確認してください(-kプログラムが再実行されないように終了信号を送信するなど)。

答え2

良いtimeout

元の投稿に近い代替ソリューション:

私.sh:

#!/bin/bash
vlc /path/to/my.mp3 & # ADDED & <- will play the file in loop till I terminate it.
pid=$!
sleep 10
kill $pid

chmod:

chmod +x my.sh

走る:

./my.sh &

関連情報