Partage
  • Partager sur Facebook
  • Partager sur Twitter

RLIMIT

limiter un subprocess

    9 juillet 2010 à 12:55:18

    Bonjour,

    je cherche a limiter un subprocess, pour celà je voudrais utiliser setrlimit.

    premièrement : RLIMIT_VMEM n'existe pas, j'ai donc utilisé RLIMIT_AS, mais le tuple que je donne me semble abérent :

    # -*- coding: utf-8 -*
    
    import resource
    import subprocess
    from time import sleep
    
    
    def f():
    	resource.setrlimit(resource.RLIMIT_AS, (100000,100000))
    	
    
    def killProcess(process):
    	process.terminate()
    	sleep(2)
    	while process.poll() == None:
    		process.kill()
    		sleep(2)
    		
    # création du subprocess
    try:
    	process1 = subprocess.Popen('./child.py', shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, preexec_fn=f)
    except:
    	print 'echec de la creation du subprocess1'
    
    # dialog
    error1 = False
    for i in range(5):
    	if process1.poll() == None:
    		print 'code1 running...'
    		try:
    			process1.stdin.write('1 + %d Serveur\n'%i) # envoie
    		except IOError:
    			print IOError
    			error1 = True
    			killProcess(process1)
    		except:
    			print 'unknown error'
    		try:
    			output = process1.stdout.readline() # recupération
    		except:
    			print "code1 must have gone crazy..."
    			error1 = True
    		if not error1:
    			print output
    
    if process1.poll() == None:
    	process1.stdin.write('Exit\n')
    	sleep(2)
    	if process1.poll() == None:
    		killProcess(process1)
    
    print 'sortie 1 :',process1.returncode,process1.poll()
    


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import sys,time
    
    while True:
    	#time.sleep(1.5)
    	msg = sys.stdin.readline()
    	if msg == 'Exit\n':
    		break
    	sys.stdout.write('child%s'%msg)
    	sys.stdout.flush()
    


    La limite est donc a 10 000 000 bytes, ça fait 10Go ça si je me trompes pas ? ça me parait un peu... énorme

    Si qqun peut m'éclairer je le remerci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      9 juillet 2010 à 13:28:19

      mdr: mais on ne t'en veux pas !
      • Partager sur Facebook
      • Partager sur Twitter
        9 juillet 2010 à 14:18:32

        ah... echec xD

        mais ça vous parait quand même pas un peu gros ?
        • Partager sur Facebook
        • Partager sur Twitter

        RLIMIT

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown