FROM ubuntu:14.04 ENV DEBIAN_FRONTEND noninteractive ##///*******************************************************/ ##//------------------------ ## append apt mirror for ubuntu, update & install ##//------------------------ ## RUN sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list RUN echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list ## do update, upgrade (which may not be needed) & install: RUN apt-get update -y && apt-get -y upgrade RUN apt-get install -y debconf build-essential \ software-properties-common python-software-properties \ nano vim git htop wget curl nload unzip RUN rm -rf /var/lib/apt/lists/*
ubuntu 14.04 в Docker модифікацією sources.list
sources.list файл для 12.04 ubuntu
deb http://archive.ubuntu.com/ubuntu precise main universe restricted multiverse deb http://archive.ubuntu.com/ubuntu precise-security universe main multiverse restricted deb http://archive.ubuntu.com/ubuntu precise-updates universe main multiverse restricted deb http://archive.ubuntu.com/ubuntu precise-proposed universe main multiverse restricted
Таймаут для виконання функції в python
Є скрипт під віндою, який час від часу залипає і це є проблемою. Варіант вирішення - задавати час на виконання функції, якщо він перевищує поріг, вбивати виконання функції. Нагуглив кілька варіантів, але під віндою не працює SIGALRM. А цей сніп досить гарно працює.
import multiprocessing
import time
# bar
def bar():
for i in range(100):
print "Tick"
time.sleep(1)
if __name__ == '__main__':
# Start bar as a process
p = multiprocessing.Process(target=bar)
p.start()
# Wait for 10 seconds or until process finishes
p.join(10)
# If thread is still active
if p.is_alive():
print "running... let's kill it..."
# Terminate - may not work if process is stuck for good
p.terminate()
# OR Kill - will work for sure, no chance for process to finish nicely however
# p.kill()
p.join()
Підписатися на:
Коментарі (Atom)