2017-02-13 44 views
0

我最近进入了机器学习。我正在运行一个沉重的处理器上的pythonscript。我的第一个想法是设置一个在后台运行的cron-job,然后在python取消这个工作,如果时间早上在06:00到07:00之间。 (作业应该理想地只在某些阶段取消。)当电脑没有被使用时运行python脚本?

0 1 * * * cd ~/web/im2txt/im2txt && ./train.sh >/Users/kristoffer/Desktop/train.py 2>/Users/kristoffer/Desktop/train.log 

但我一想,是有什么方法,无论是在Python或通过shell运行脚本,如果不使用电脑?是在闲置还是类似的东西?

回答

2

xscreensaver可以运行在其配置文件中指定的任何程序,即:

  programs: \ 
        qix -root       \n\ 
        ico -r -faces -sleep 1 -obj ico \n\ 
        xdaliclock -builtin2 -root   \n\ 
        xv -root -rmode 5 image.gif -quit \n 

然后,你可以添加自己的,让做的xscreensaver休眠确定当您的计算机处于闲置状态。

+0

不错的主意! (Pun打算:)) – user4815162342

+0

问题是:为什么在没有其他进程竞争的情况下始终以低优先级运行程序,因为您没有使用它 –

+0

这是osx中的本机吗? – Himmators

2

的标准方法,使你的程序与优先级较低的运行相比其它工艺使用nice命令:

nice -n 20 ./train.sh 

该命令将运行所有的时间,但调度程序将给予优先级最低,只有在没有别的事情可做时,才有效地给它CPU时间。

但是,请注意,nice只会使过程更好(因此名称)其他公主。如果没有其他进程竞争CPU时间,那么即使在优先级最低的情况下,CPU占用率高的进程也会利用100%的可用内核(并加热机器)。

+0

不错!然而,它似乎仍然很难推动我的CPU,耗尽电池并将我的笔记本电脑变成了一个火炉,所以不适用于这种情况。 – Himmators

+0

是的,“好的”只会使流程对其他公主更好(因此得名)。如果没有其他进程竞争CPU时间,即使是最低优先级的需要零CPU的进程也会高兴地使用100%的可用内核,从而加热机器。 – user4815162342