我有一个 python 代码,它生成从 Ustream 录制实时流的命令。
我想设置一个 cronjob 每周运行一次此脚本来录制节目,是否有我可以在 python 代码中使用的代码,以便在生成正确的命令后执行给定时间然后停止它?
我想应该有一种方法来运行脚本,等待所需的时间,然后使用它的 ID 终止进程。那是对的吗?
您可以让已启动的进程在启动时将其进程 ID 写入文件。然后进行另一个读取该文件并终止该文件中的进程 ID 的 cron 作业。
您也可以(而不是修改已启动的进程)制作一个“启动器”bash 脚本,将已启动进程的 ID 写入文件:
#!/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