Ustream からのライブ ストリームを記録するコマンドを生成する Python コードがあります。
番組を録画するためにこのスクリプトを週に 1 回実行するように cronjob を設定したいのですが、適切なコマンドを生成した後、一定時間実行されてから停止するように、Python コードで使用できるコードはありますか?
スクリプトを実行し、必要な時間を待ってから、その ID を使用してプロセスを強制終了する方法が必要だと思います。あれは正しいですか?
開始されたプロセスは、起動時にそのプロセス ID をファイルに書き込むことができます。次に、そのファイルを読み取り、そのファイル内のプロセス ID を強制終了する別の cron ジョブを作成します。
別の方法として (開始されたプロセスを変更するのではなく)、開始されたプロセスの ID をファイルに書き込む「スターター」bash スクリプトを作成することもできます。
#!/bin/bash -e
nohup python ustream_recorder.py > /tmp/ustream_recorder.log 2>&1 &
echo $! > /tmp/ustream_recorder.pid
次に、それを殺すには:
#!/bin/bash -e
kill -INT `cat /tmp/ustream_recorder.pid`
rm /tmp/ustream_recorder.pid