Re: [python] multiprocess problem se sirotkem

2012-09-05 Tema obsahu Tomas Pelka

On 09/05/2012 10:12 AM, Jirka Vejrazka wrote:

Zni to jako chyba v navrhu uz v principu :0


To jiste je.



Celery (resp. jeho zavislosti) je trochu velke zvire na takovou
drobnost. Co treba mit na tom stroji s standardne pusteny Pyhton
process, ktery se bude starat o ty dlouho bezici ulohy a ten CGI
skript mu jenom preda potrebne vstupni parametry pres
multiprocessing.Queue?


Presne o tomto jsem take premyslel. Budu tedy muset trochu upravit.

Diky

--
Tomas Pelka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] multiprocess problem se sirotkem

2012-09-05 Tema obsahu Tomas Pelka
Aha takze ani daemon = True nepomuze, chjo tak to budu muset udelat 
jinak. Ale zatim me nenapada jak :/


On Wed 05 Sep 2012 09:56:08 AM CEST, azurIt wrote:

Ahoj,

proces je ukonceny pretoze jeho parent skoncil (proces web serveru ->  CGI 
skript). Ak si na linuxe, tak toto nie je mozne takymto sposobom urobit (resp. nie 
je mi znamy sposob). Ine OS neviem.

azur


__

Od: "Tomas Pelka"
Komu:
Dátum: 05.09.2012 09:51
Predmet: [python] multiprocess problem se sirotkem

Zdravim vsechny,

resim nasledujici problem a verim, ze mi nekdo z vas pomuze.

Potrebuji z cgi skriptu (interpretuje jej jednoduchy httpserver) pustit
dlouho bezici ulohu ale tak abych nemusel volat mutiprocess.join(),
protoze pak stranka zustane viset. Jak jsem zminil pouzivam k tomu
multiprocess, ktery pouze nastartuji ale nejoinu. Vse ale nasvercuje
tomu, ze proces je zabyt i kdyz by mel byt daemonem.

import multiprocess

mp = Process(target=__handle_execution, args=(args,))
mp.daemon = True
mp.start()

-- zde je konec cgi skriptu --

Ma nekdo s podobnym chovanim zkusenosti?

Diky

--
Tomas Pelka



--

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python




--
Tomas Pelka
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] multiprocess problem se sirotkem

2012-09-05 Tema obsahu Tomas Pelka

Zdravim vsechny,

resim nasledujici problem a verim, ze mi nekdo z vas pomuze.

Potrebuji z cgi skriptu (interpretuje jej jednoduchy httpserver) pustit 
dlouho bezici ulohu ale tak abych nemusel volat mutiprocess.join(), 
protoze pak stranka zustane viset. Jak jsem zminil pouzivam k tomu 
multiprocess, ktery pouze nastartuji ale nejoinu. Vse ale nasvercuje 
tomu, ze proces je zabyt i kdyz by mel byt daemonem.


import multiprocess

mp = Process(target=__handle_execution, args=(args,))
mp.daemon = True
mp.start()

-- zde je konec cgi skriptu --

Ma nekdo s podobnym chovanim zkusenosti?

Diky

--
Tomas Pelka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] multiprocess manager

2010-07-29 Tema obsahu Tomas Pelka



On 07/26/2010 09:52 PM, Tomas Pelka wrote:

Zdravim vsechny,

mam potize s exportovanim objektu pres manager z modulu multiprocess, 
priklad:


Worker.py:
###
from multiprocessing import Process
from multiprocessing.managers import BaseManager
import pcapy
from impacket.ImpactDecoder import EthDecoder

__all__ = ['Worker']

class Worker(Process):
'''
Class for sniffing packets, runnig as root
'''

public = ['go', 'terminate']

def __init__(self):
super(Worker, self).__init__()
self.iface = ''
self.expr = ''
self.pcap = ''
# define packet decoder
self.decoder = EthDecoder()
# key for queue daemon, remotely on localhost:5000
self._keyQ = '10b222970537b97919db36ec757370d2'
class QueueManager(BaseManager): pass
QueueManager.register('get_dataQueue')
self._m = QueueManager(address=('127.0.0.1', 5000), 
authkey=self._keyQ)

self._m.connect()
self.dataQueue = self._m.get_dataQueue()
def go(self, iface, expr):
'''
start sniffer
'''
print "Starting sniffer"
self.iface = iface
self.expr = expr
super(Worker, self).start()
def terminate(self):
'''
terminate sniffer
'''
super(Worker, self).terminate()
def run(self):
print "sniffing ..."
print self.iface
print self.expr
self.pcap = pcapy.open_live(self.iface, 1500, 1, 0)
self.pcap.setfilter(self.expr)
self.pcap.loop(0, self.__packetHandler)
print "... done"
def __packetHandler(self, hdr, data):
'''
handles packets and put them in to the queue
'''
print "Handling packets"
#print data
print "Queue size: %i" % self.dataQueue.qsize()
print self.decoder.decode(data)
self.dataQueue.put(data)

Export objektu (Worker):
###
from Worker import Worker

class SniffManager(BaseManager): pass
SniffManager.register('Worker', callable=Worker)
Sm = SniffManager(address=('127.0.0.1', 5001), 
authkey='f1f16683f3e0208131b46d37a79c8921')

Ss = Sm.get_server()
Ss.serve_forever()


Volani metod objektu, vzdalene:
###
# get remote object
class WorkerManager(BaseManager): pass
WorkerManager.register('Worker')
w = WorkerManager(address=('127.0.0.1', 5001), 
authkey='f1f16683f3e0208131b46d37a79c8921')

w.connect()
worker = w.Worker() #TOHLE FUNGUJE JAK MA

ale

worker.terminate()

File "/home/tom/web2py/applications/init/controllers/sniffer.py", line 
143, in index

worker.terminate()
File "", line 2, in terminate
File "/usr/lib/python2.6/multiprocessing/managers.py", line 740, in 
_callmethod

raise convert_to_error(kind, result)
AttributeError: 'NoneType' object has no attribute 'terminate'

Zarazi me ze go() funguje a terminate() nikoliv. Lokalne funfuje vse 
tak jak ma.


Diky za rady.


Nejzvlastnejsi mi prijde to ze super(Worker, self).terminate(), tedy 
super(Worker, self) je podle pythonu NoneType.


--
Tomas Pelka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] multiprocess manager

2010-07-29 Tema obsahu Tomas Pelka



On 07/27/2010 09:20 AM, Tomas Pelka wrote:



On 07/27/2010 08:49 AM, Jirka Vejrazka wrote:

Ahoj,

   me to po ranu moc nemysli, tak me ber s rezervou :)


worker = w.Worker() #TOHLE FUNGUJE JAK MA



Po tomto ma jeste nasledovat jeden radek
worker.go('eth2', 'tcp port 22') # napriklad


   Urcite? Neber to ve zlem, ale mas jistotu, ze to startuje ten
spravny Worker? Uz je to dlouho, co jsem si s timhle hral, ale koukal
jsem ted do nejakeho stareho kodu a tam jsem nasel neco, co by u tebe
vypadalo asi takhle:


from Worker import Worker
class WorkerManager(BaseManager):
 pass
WorkerManager.register('Worker', Worker)   # ma 2 parametry!


No to by ale znamenalo ze Worker musi byt nekde definovany, nebo 
importovany (from worker import Worker) a pak by to volani metod na 
remote objektech ztracelo smysl. Jinak se to chova stejne v obou 
pripadech, tedy WorkerManager.register('Worker', Worker) i 
WorkerManager.register('Worker').



  Navic nikde nevidim, ze bys volal WorkerManager.start(), vypada to,
ze cely multiprocessing vlastne nefunguje, budes se na to muset jeste
trochu podivat. Vim, ze to neni uplne skvela rada, ale zacni od
mensich veci a vyzkousej si na nich jak multiprocessing funguje,
sniffovani paketu mezi ne nepatri :-)  Rikam to jenom proto, ze jsem
prosel stejnou cestu jako ty a nakonec jsem skoncil u neceho radove
slozitejsiho nez jsem cekal.

  Par poznamek na okraj:

   - mel jsem podobne problemy jako ty, neslo mi volat terminate() na
vzdalenem procesu. Nakonec jsem skoncil se specialni "ridici frontou",
kam jsem tomu vzdalenemu procesu poslal vzkaz, aby se ukoncil sam. To
fungovalo.
  - myslim, ze definovat QueueManager ve Worker.__init__() je spatne
jak koncepcne, tak technicky 
Muzu pozadat o male vysvetleni. Proc myslis, ze koncepce je spatna? Bylo 
by lepsi predavat frontu jako parametr?

(nejsem si jisty, jestli to
multiprocessing zvladne, spustit manager teoreticky na jinem stroji).
Navic se zda, ze mu taky chybi start().

Start tady neni treba protoze se jedna jen o objekt fronty a ne proces.


Ano start() chybi, mas pravdu, viz vyse.


  - mrkni se na PEP08 ;-)

Porad si ten code style nemuzu zazit :)


   Jak jsem psal, rano neni moje nejlepsi doba, tak me ber s rezervou 
;-)


 Jirka
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python



Diky za podnetne nazory.

--
Tomas Pelka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] multiprocess manager

2010-07-27 Tema obsahu Tomas Pelka



On 07/27/2010 08:49 AM, Jirka Vejrazka wrote:

Ahoj,

   me to po ranu moc nemysli, tak me ber s rezervou :)


worker = w.Worker() #TOHLE FUNGUJE JAK MA



Po tomto ma jeste nasledovat jeden radek
worker.go('eth2', 'tcp port 22') # napriklad


   Urcite? Neber to ve zlem, ale mas jistotu, ze to startuje ten
spravny Worker? Uz je to dlouho, co jsem si s timhle hral, ale koukal
jsem ted do nejakeho stareho kodu a tam jsem nasel neco, co by u tebe
vypadalo asi takhle:


from Worker import Worker
class WorkerManager(BaseManager):
 pass
WorkerManager.register('Worker', Worker)   # ma 2 parametry!


  Navic nikde nevidim, ze bys volal WorkerManager.start(), vypada to,
ze cely multiprocessing vlastne nefunguje, budes se na to muset jeste
trochu podivat. Vim, ze to neni uplne skvela rada, ale zacni od
mensich veci a vyzkousej si na nich jak multiprocessing funguje,
sniffovani paketu mezi ne nepatri :-)  Rikam to jenom proto, ze jsem
prosel stejnou cestu jako ty a nakonec jsem skoncil u neceho radove
slozitejsiho nez jsem cekal.

  Par poznamek na okraj:

   - mel jsem podobne problemy jako ty, neslo mi volat terminate() na
vzdalenem procesu. Nakonec jsem skoncil se specialni "ridici frontou",
kam jsem tomu vzdalenemu procesu poslal vzkaz, aby se ukoncil sam. To
fungovalo.
  - myslim, ze definovat QueueManager ve Worker.__init__() je spatne
jak koncepcne, tak technicky (nejsem si jisty, jestli to
multiprocessing zvladne, spustit manager teoreticky na jinem stroji).
Navic se zda, ze mu taky chybi start().


Ano start() chybi, mas pravdu, viz vyse.


  - mrkni se na PEP08 ;-)

Porad si ten code style nemuzu zazit :)


   Jak jsem psal, rano neni moje nejlepsi doba, tak me ber s rezervou ;-)

 Jirka
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


--
Tomas Pelka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] multiprocess manager

2010-07-26 Tema obsahu Tomas Pelka

Zdravim vsechny,

mam potize s exportovanim objektu pres manager z modulu multiprocess, 
priklad:


Worker.py:
###
from multiprocessing import Process
from multiprocessing.managers import BaseManager
import pcapy
from impacket.ImpactDecoder import EthDecoder

__all__ = ['Worker']

class Worker(Process):
'''
Class for sniffing packets, runnig as root
'''

public = ['go', 'terminate']

def __init__(self):
super(Worker, self).__init__()
self.iface = ''
self.expr = ''
self.pcap = ''
# define packet decoder
self.decoder = EthDecoder()
# key for queue daemon, remotely on localhost:5000
self._keyQ = '10b222970537b97919db36ec757370d2'
class QueueManager(BaseManager): pass
QueueManager.register('get_dataQueue')
self._m = QueueManager(address=('127.0.0.1', 5000), 
authkey=self._keyQ)

self._m.connect()
self.dataQueue = self._m.get_dataQueue()
def go(self, iface, expr):
'''
start sniffer
'''
print "Starting sniffer"
self.iface = iface
self.expr = expr
super(Worker, self).start()
def terminate(self):
'''
terminate sniffer
'''
super(Worker, self).terminate()
def run(self):
print "sniffing ..."
print self.iface
print self.expr
self.pcap = pcapy.open_live(self.iface, 1500, 1, 0)
self.pcap.setfilter(self.expr)
self.pcap.loop(0, self.__packetHandler)
print "... done"
def __packetHandler(self, hdr, data):
'''
handles packets and put them in to the queue
'''
print "Handling packets"
#print data
print "Queue size: %i" % self.dataQueue.qsize()
print self.decoder.decode(data)
self.dataQueue.put(data)

Export objektu (Worker):
###
from Worker import Worker

class SniffManager(BaseManager): pass
SniffManager.register('Worker', callable=Worker)
Sm = SniffManager(address=('127.0.0.1', 5001), 
authkey='f1f16683f3e0208131b46d37a79c8921')

Ss = Sm.get_server()
Ss.serve_forever()


Volani metod objektu, vzdalene:
###
# get remote object
class WorkerManager(BaseManager): pass
WorkerManager.register('Worker')
w = WorkerManager(address=('127.0.0.1', 5001), 
authkey='f1f16683f3e0208131b46d37a79c8921')

w.connect()
worker = w.Worker() #TOHLE FUNGUJE JAK MA

ale

worker.terminate()

File "/home/tom/web2py/applications/init/controllers/sniffer.py", line 
143, in index

worker.terminate()
File "", line 2, in terminate
File "/usr/lib/python2.6/multiprocessing/managers.py", line 740, in 
_callmethod

raise convert_to_error(kind, result)
AttributeError: 'NoneType' object has no attribute 'terminate'

Zarazi me ze go() funguje a terminate() nikoliv. Lokalne funfuje vse tak 
jak ma.


Diky za rady.

--
Tomas Pelka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

[python] scapy a serializace paketu

2010-07-05 Tema obsahu Tomas Pelka

Zdravim vsechny,

mam maly problem s ukladanim scapy paketu do fronty (multiprocess). Priklad:

from multiprocessing import Process
from multiprocessing.managers import BaseManager
from scapy.all import sniff

class Worker(Process):
'''
Class for sniffing packets, runnig as root
'''
def __init__(self):
super(Worker, self).__init__()
self.iface = ''
self.expr = ''
# key for queue daemon, remotely on localhost:5000
self._keyQ = '10b222970537b97919db36ec757370d2'
class QueueManager(BaseManager): pass
QueueManager.register('get_dataQueue')
self._m = QueueManager(address=('127.0.0.1', 5000), 
authkey=self._keyQ)

self._m.connect()
self.dataQueue = self._m.get_dataQueue()
def go(self, iface, expr):
print "Starting sniffer"
self.iface = iface
self.expr = expr
super(Worker, self).start()
def run(self):
print "sniffing ..."
print self.iface
print self.expr
print self.dataQueue
packets = sniff(filter=self.expr, count=10, timeout=10, 
iface=self.iface)

print packets
self.dataQueue.put(packets)
print "... done"


But always getting:
Traceback (most recent call last):
  File "/usr/lib/python2.6/multiprocessing/process.py", line 232, in 
_bootstrap

self.run()
  File "/home/tom/web2py/applications/NetSim/DAEMON/Worker.py", line 
32, in run

self.dataQueue.put(packets)
  File "", line 2, in put
  File "/usr/lib/python2.6/multiprocessing/managers.py", line 725, in 
_callmethod

conn.send((self._id, methodname, args, kwds))
PicklingError: Can't pickle : attribute lookup 
__builtin__.function failed



PAkety nejsou snad serializovatelne? Nesetkal se s touto chybou uz nekdo 
drive?


Diky za rady

--
Tomas Pelka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] multiprocess a subprocess

2010-04-17 Tema obsahu Tomas Pelka
Petr Messner wrote:
> Předpokládám, že místo foo() je myšleno spouštění webového serveru přes Popen 
> z bar(). Mě tento kód funguje, příkaz se spustí. Asi bude chyba někde jinde. 
> Často pomůže podívat se přes strace, co to vlastně dělá (myslím příkaz strace 
> v Linuxu nebo něco podobného v jiných OS). Raději sem ale pošlete větší kus 
> zdrojového kódu, nebo vysvětlete, o co se snažíte, webový server se v Pythonu 
> dá spustit i jednoduššími způsoby.
> 

No spoustim web2py, s tim ze je to zbytecne slozite souhlasim.

> Jinak by bylo pěkné k ukázce kódu doplnit i příslušné importy, aby se kód dal 
> co nejsnáze spustit a vyzkoušet.

import os, pwd, sys
from multiprocessing import Process, Manager, Queue
from subprocess import Popen, PIPE

Napadlo me jestli nebude problem s p.communicate() ale v tom problem nebyl.

> 
> PM
> 
> On 16.4.2010, at 23:56, Tomas Pelka wrote:
> 
>> Zdravim,
>>
>> mam maly problem, ktery jiz resim cely vecer. Pro znale bude reseni
>> jiste otazkou chvilky. Pokousim se o nasledujici:
>>
>>
>> def foo(q):
>>print os.getuid()
>>while True:
>>pass
>>
>> def bar():
>>os.setuid(NEJAKE_EXISTUJICI_UID)
>>if not CESTA_K_HOME in sys.path:
>>sys.path.append(CESTA_K_HOME)
>>os.chdir(CESTA_K_HOME)
>>cmd = "prikaz spouztejici web server"
>>p = Popen(cmd, shell=True, stdout=PIPE)
>>p.communicate()
>>
>>
>> if __name__ == "__main__":
>># fronta neni prozatim dulezita
>>workQueue = Queue()
>>
>>bar_proc = Process(target=bar, args=())
>>foo_proc = Process(target=foo, args=(workQueue,))
>>
>>foo_proc.start()
>>bar_proc.start()
>>
>>foo_proc.join()
>>bar_proc.join()
>>
>>
>> Problem je ten ze webovy server z foo() nebezi i kdyz python rika
>> (foo_proc.is_alive()), ze proces bezi.
>>
>> Kde delam neustale chybu?
>>
>> Diky za odpovedi.
>>
>> -- 
>> Tom
>>
>> ___
>> Python mailing list
>> Python@py.cz
>> http://www.py.cz/mailman/listinfo/python
> 
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python


-- 
Tom
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] multiprocess a subprocess

2010-04-16 Tema obsahu Tomas Pelka
Moje chyba melo byt bar(), foo() je jak rikate zatizi proc na 100% (tedy
funguje).

Oprava:
Problem je ten ze webovy server z bar() nebezi ...

azurIt wrote:
> Co presne by mala robit funkcia foo() ? :) podla mna ti na 100% vyhuli 
> procesor a to je cele ;)
> 
> 
> 
>> -Pôvodná správa-----
>> Od: Tomas Pelka [mailto:tompe...@gmail.com]
>> Komu: python@py.cz
>> Predmet: [python] multiprocess a subprocess
>>
>>
>> Zdravim,
>>
>> mam maly problem, ktery jiz resim cely vecer. Pro znale bude reseni
>> jiste otazkou chvilky. Pokousim se o nasledujici:
>>
>>
>> def foo(q):
>> print os.getuid()
>> while True:
>> pass
>>
>> def bar():
>> os.setuid(NEJAKE_EXISTUJICI_UID)
>> if not CESTA_K_HOME in sys.path:
>> sys.path.append(CESTA_K_HOME)
>> os.chdir(CESTA_K_HOME)
>> cmd = "prikaz spouztejici web server"
>> p = Popen(cmd, shell=True, stdout=PIPE)
>> p.communicate()
>>
>>
>> if __name__ == "__main__":
>> # fronta neni prozatim dulezita
>> workQueue = Queue()
>>
>> bar_proc = Process(target=bar, args=())
>> foo_proc = Process(target=foo, args=(workQueue,))
>>
>> foo_proc.start()
>> bar_proc.start()
>>
>> foo_proc.join()
>> bar_proc.join()
>>
>>
>> Problem je ten ze webovy server z foo() nebezi i kdyz python rika
>> (foo_proc.is_alive()), ze proces bezi.
>>
>> Kde delam neustale chybu?
>>
>> Diky za odpovedi.
>>
>> --
>> Tom
>>
>> ___
>> Python mailing list
>> Python@py.cz
>> http://www.py.cz/mailman/listinfo/python
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python


-- 
Tom

Key fingerprint = 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] multiprocess a subprocess

2010-04-16 Tema obsahu Tomas Pelka
Zdravim,

mam maly problem, ktery jiz resim cely vecer. Pro znale bude reseni
jiste otazkou chvilky. Pokousim se o nasledujici:


def foo(q):
print os.getuid()
while True:
pass

def bar():
os.setuid(NEJAKE_EXISTUJICI_UID)
if not CESTA_K_HOME in sys.path:
sys.path.append(CESTA_K_HOME)
os.chdir(CESTA_K_HOME)
cmd = "prikaz spouztejici web server"
p = Popen(cmd, shell=True, stdout=PIPE)
p.communicate()


if __name__ == "__main__":
# fronta neni prozatim dulezita
workQueue = Queue()

bar_proc = Process(target=bar, args=())
foo_proc = Process(target=foo, args=(workQueue,))

foo_proc.start()
bar_proc.start()

foo_proc.join()
bar_proc.join()


Problem je ten ze webovy server z foo() nebezi i kdyz python rika
(foo_proc.is_alive()), ze proces bezi.

Kde delam neustale chybu?

Diky za odpovedi.

-- 
Tom

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] spousteni casti kodu jako root

2010-02-06 Tema obsahu Tomas Pelka
Tomas Pelka wrote:
> Presne tak hlavy pomazane :D, bylo zmineno scapy a ten potrebuje
> pristupovat k siti promiskuitne :D
> 
> Me se nejlepe jevi moznost spoustet wrapper pres sudo a nasledne
> informace (pakety) predavat do fronty odkud je muzu z nerootovskeho
> porocesu odebirat (tim jestli bude mozne frontu cist i nerootovske
> procesu si nejsem moc jisty) -- toto by se mi i z hlediska pozdejsiho
> zpracovani vice vyhovovalo.

Zatim jsem premyslel o Queues z multiprocessing, jeste nemam dokumentaci
doctenu ale je mozne frontu sdilet mezi vice plne oddelenych procesu a
navic po ruznymi uzivateli?

> 
> Druha moznost, ktera me napada je ponekud "nepekna". Pouzit sudo a
> tcpdump jehoz vystup ulozim do soubotu, tento pak uz jako bezny uzivatel
> pomoci scapy nactu a zpracovavam. Ale toto reseni je jak jiste sami
> uznate dost pomale a je to jako skrabat se levou nohou na pravem uchu.
> 
> Tomas Pelka wrote:
>> Zdravim vsechny,
>>
>> potreboval bych spoustet casti kodu jako root. Nevite nekdo jak na to?
>>
>> Proc to chci delat? Potreboval bych spoustet scapy pro odchytavani
>> paketu, ale jak z namo k tomu potrebuji superuzivatelska opravneni.
>>
>> Dalsi moznost jak toto provest je udelat si jednoduchy wrapper a ten pak
>> spoustet pres sudo. Jina metoda me nenapada.
>>
>> Diky za rady.
>>
> 


-- 
Tom

Key fingerprint = 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] spousteni casti kodu jako root

2010-02-05 Tema obsahu Tomas Pelka
Presne tak hlavy pomazane :D, bylo zmineno scapy a ten potrebuje
pristupovat k siti promiskuitne :D

Me se nejlepe jevi moznost spoustet wrapper pres sudo a nasledne
informace (pakety) predavat do fronty odkud je muzu z nerootovskeho
porocesu odebirat (tim jestli bude mozne frontu cist i nerootovske
procesu si nejsem moc jisty) -- toto by se mi i z hlediska pozdejsiho
zpracovani vice vyhovovalo.

Druha moznost, ktera me napada je ponekud "nepekna". Pouzit sudo a
tcpdump jehoz vystup ulozim do soubotu, tento pak uz jako bezny uzivatel
pomoci scapy nactu a zpracovavam. Ale toto reseni je jak jiste sami
uznate dost pomale a je to jako skrabat se levou nohou na pravem uchu.

Tomas Pelka wrote:
> Zdravim vsechny,
> 
> potreboval bych spoustet casti kodu jako root. Nevite nekdo jak na to?
> 
> Proc to chci delat? Potreboval bych spoustet scapy pro odchytavani
> paketu, ale jak z namo k tomu potrebuji superuzivatelska opravneni.
> 
> Dalsi moznost jak toto provest je udelat si jednoduchy wrapper a ten pak
> spoustet pres sudo. Jina metoda me nenapada.
> 
> Diky za rady.
> 

-- 
Tom

Key fingerprint = 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] spousteni casti kodu jako root

2010-02-04 Tema obsahu Tomas Pelka
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Adam Strauch wrote:
> Ahoj,
> 
> spustit jako root, forknout, v jednom zahodit práva a druhým čekat na
> signál od prvního :)

No jo ale puvodni proces nebezi pod rootem.

> 
> Tomas Pelka píše v Čt 04. 02. 2010 v 19:36 +0100:
> Zdravim vsechny,
> 
> potreboval bych spoustet casti kodu jako root. Nevite nekdo jak na to?
> 
> Proc to chci delat? Potreboval bych spoustet scapy pro odchytavani
> paketu, ale jak z namo k tomu potrebuji superuzivatelska opravneni.
> 
> Dalsi moznost jak toto provest je udelat si jednoduchy wrapper a ten pak
> spoustet pres sudo. Jina metoda me nenapada.
> 
> Diky za rady.
> 
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

> 

> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python


- --
Tom

Key fingerprint = 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAktrJU0ACgkQf29+q0lrKKolmQCfbYTT6P4hgVucWYfvQ34e/+HZ
StgAnRvdmljzq7ihg/n1fD+c8U7ByTYz
=ZbgV
-END PGP SIGNATURE-
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] spousteni casti kodu jako root

2010-02-04 Tema obsahu Tomas Pelka
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Zdravim vsechny,

potreboval bych spoustet casti kodu jako root. Nevite nekdo jak na to?

Proc to chci delat? Potreboval bych spoustet scapy pro odchytavani
paketu, ale jak z namo k tomu potrebuji superuzivatelska opravneni.

Dalsi moznost jak toto provest je udelat si jednoduchy wrapper a ten pak
spoustet pres sudo. Jina metoda me nenapada.

Diky za rady.

- --
Tom

Key fingerprint = 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAktrE78ACgkQf29+q0lrKKpqLQCbBFRVKU+ko9ncMsyb77jCksLv
xsoAnA64gN022GvlSHCY7IsX1RE+OjQr
=CVTC
-END PGP SIGNATURE-
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] python subprocess vraci porad 1

2010-01-21 Tema obsahu Tomas Pelka

On 01/21/2010 11:52 AM, Jan Jakubuv wrote:

zdravim,

On Thu, Jan 21, 2010 at 09:44:55AM +0100, Tomas Pelka wrote:

Dobry napad, predelal sem tedy na:

--
cmd = "/usr/bin/locate"
arg1 = " -i"
arg2 = " -d /var/www/books/mlocate.db"
arg3 = str(" " + pattern)



Chyba je formatu argumentu arg1, atd.  Ta mezera na zacatku tam nesmi byt.
Zkuste:

arg1 = "-i"
arg2a = "-d"
arg2a = "/var/www/books/mlocate.db"
arg3 = str(pattern)

p1 = subprocess.Popen([cmd, arg1, arg2a, arg2b, arg3], shell=False, ...)

Zbytek uz je spravne, pokud argumenty predavate jako list pak je skutecne
treba zadat je oddelene.

Pokud chcete zadat prikaz jako jeden string pak pouzijte `shell=True` a
namistu listu zadejte string:

p1 = subprocess.Popen("/usr/bin/locate -i -d file pattern", shell=True, ...)


(stdoutdata, stderrdata) = p1.communicate()

print p1.returncode
print "%s -- %s" % (stdoutdata, stderrdata)
--

Ale stale vraci 1 a zadny vysledek.



honza.





Diky za radu ale stale se nedokazu dobrat nejakemu vysledku.
Skript je vlastne CGI spoustene z apache, divne ale je, ze kdyz spustim 
z shellu:



# su -s /bin/bash -c "/usr/bin/locate -i -d /var/www/books/mlocate.db 
python; echo $?" apache

0
---
tak vzdy dostanu 0 ale zadny vysledek, pritom CGI vraci 1. Kdyz to same 
spustim jako bezny uzivatel (ne apache) tak dostanu 0 a nenulovy tedy 
spravny vysledek.


Problem s mlocate.db by byt nemel, protoze je citelny pro apache (ten je 
ve skupine books) a vlastne i pro ostatni, viz:


# su -s /bin/bash -c "ls -l /var/www/books/mlocate.db" apache
-rw-rw-r-- 1 tom books 1465653 Jan 20 13:33 /var/www/books/mlocate.db


Cely CGI v priloze.

--
Tom

#!/usr/bin/python

import cgi
import cgitb; cgitb.enable()  # for troubleshooting
import subprocess
import sys
import os
sys.stderr = sys.stdout

command = ""
result = ""
stdoutdata = ""
stderrdata = ""

# Create instance of FieldStorage
form = cgi.FieldStorage()

# Get data from field 'pattern'
pattern = form.getvalue('pattern', 'None')
# Get data from field 're'
re = form.getvalue('re')

cmd = "/usr/bin/locate"
arg1 = "-i"
arg2a = "-d"
arg2b = "/var/www/books/mlocate.db"
arg3 = "-r"
arg4 = str(pattern)
p1 = None

if re == "re":
p1 = subprocess.Popen([cmd, arg1, arg2a, arg2b, arg3, arg4], 
shell=False, \
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
command = "%s %s %s %s %s %s" % (cmd, arg1, arg2a, arg2b, arg3, arg4)
else:
p1 = subprocess.Popen([cmd, arg1, arg2a, arg2b, arg4], shell=False, \
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
command = "%s %s %s %s %s " % (cmd, arg1, arg2a, arg2b, arg4)

(stdoutdata, stderrdata) = p1.communicate()

print "Content-type: text/html"
print

# debug
print "UID: %i " % os.getuid()
print "Search pattern: %s " % pattern
print """stdout: %s 
stderr: %s 
""" % (stdoutdata, stderrdata)
print "Return code: %i" % p1.returncode

print """

Hledej v books


Hledany vyraz:



Hledat pomoci regularniho vyrazu?






"""
if p1.returncode == 0:
if stdoutdata:
result = stdoutdata
else:
result = "Nic takoveho sem nenasel :/"

else:
result = 'Chyba: \
index souboru je bud zastaraly nebo doslo \
k chybe pri vyhledavani.%s \
%s' % (command, stderrdata)

print """
Hledany vyraz "%s" se nachazi v nasledujicich adresarich
%s
 
""" % (pattern, result)

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] python subprocess vraci porad 1

2010-01-21 Tema obsahu Tomas Pelka

Dobry napad, predelal sem tedy na:

--
cmd = "/usr/bin/locate"
arg1 = " -i"
arg2 = " -d /var/www/books/mlocate.db"
arg3 = str(" " + pattern)

p1 = subprocess.Popen([cmd, arg1, arg2, arg3], shell=False, 
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(stdoutdata, stderrdata) = p1.communicate()

print p1.returncode
print "%s -- %s" % (stdoutdata, stderrdata)
--

Ale stale vraci 1 a zadny vysledek.


On 01/20/2010 09:44 PM, Koumes21 wrote:

Nazdar,

me napada akorat to, ze prvni parametr pro subprocess.Popen() by nemel
vypadat jako [cmd, args], ale jako [cmd, arg1, arg2, ...], tedy ze
jednotlive argumenty by nemely byt jen oddeleny mezerou, ale mely by
byt samostatnymi prvky listu. Doufam, ze je to jasne a ze to pomuze
(nezkousel jsem, jenom jsem si tohohle zrovna vsiml).

K21

2010/1/20 Tomas Pelka:
   

Zdravim konferenci,
temer cely den se peru se subprocess. Problem me dela naledujici
jednoducha konstrukce:

--
import subprocess

pattern = "python"
cmd = "/usr/bin/locate"
args = " -i -d /var/www/books/mlocate.db %s" % pattern

p1 = subprocess.Popen([cmd,  args], shell=False, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdoutdata, stderrdata) = p1.communicate()

print p1.returncode
print "%s -- %s" % (stdoutdata, stderrdata)
--

Takze cilem je spustit prikaz
/usr/bin/locate -i -d /var/www/books/mlocate.db python
v shellu tento prikaz vypise nenulovy vysledek a skonci s nulovym
navratovym kodem. V pythonu konci s navratovym kodem "1" a " -- ".

Netusim proc tomu tak je, ma nekdo nejaky napad.
Dekuji.

--
Tom

Key fingerprint = 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

 

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
   



--
Tom

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] python subprocess vraci porad 1

2010-01-20 Tema obsahu Tomas Pelka
Zdravim konferenci,
temer cely den se peru se subprocess. Problem me dela naledujici
jednoducha konstrukce:

--
import subprocess

pattern = "python"
cmd = "/usr/bin/locate"
args = " -i -d /var/www/books/mlocate.db %s" % pattern

p1 = subprocess.Popen([cmd,  args], shell=False, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdoutdata, stderrdata) = p1.communicate()

print p1.returncode
print "%s -- %s" % (stdoutdata, stderrdata)
--

Takze cilem je spustit prikaz
/usr/bin/locate -i -d /var/www/books/mlocate.db python
v shellu tento prikaz vypise nenulovy vysledek a skonci s nulovym
navratovym kodem. V pythonu konci s navratovym kodem "1" a " -- ".

Netusim proc tomu tak je, ma nekdo nejaky napad.
Dekuji.

-- 
Tom

Key fingerprint = 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] python + XMLRPC/SOAP/REST

2010-01-16 Tema obsahu Tomas Pelka
azurIt napsal(a):
> Ahoj,
> 
> my pre nase API pouzivame SOAP, konkretne ZSI ( 
> http://pywebsvcs.sourceforge.net/ ). Musim s tebou ale suhlasit, ze 
> implementacia ako taka je dost zvlastna, navyse verzie 2.0 a 2.1 boli pre nas 
> nepouzitelne takze sme zostali pri 1.7 + nejake custom upravy. Ale problemy 
> mame mozno tym, ze si to vsetko trochu ulahcujem a vsade pouzivam typ Any :) 
> v kazdom pripade, nevidim dovod pouzivat komplexne typy, kedze vzdy prenasam 
> len standardne boolean/integer/string/array.
> 
> azur
> 

Mohl bych se jeste pozastavit nad ZSI, jake konkretne problemy s nim
mate, treba mi to pomuze v rozhodovani.

> 
>> -Pôvodná správa-
>> Od: Tomas Pelka [mailto:tompe...@gmail.com]
>> Komu: Konference PyCZ 
>> Predmet: [python] python + XMLRPC/SOAP/REST
>>
>>
>> Zdravim konferenci, chtel bych se vas vsech zeptat na nazor na
>> nasledujici problematiku.
>>
>> Vyvstal prede mnou problem tvorby webove sluzby, respektive potrebuji
>> zajistit RPC. Proto predpokladam tvorbu serverove a klientske casti
>> otazkou ale zustava jakou technologii zvolit.
>>
>> Zatim se jako nejlepe v pythonu implementovana jevi klasicka XML-RPC,
>> tato technologie ma vsak sva omezeni, ze kterych mam obavy.
>>
>> Jako dalsi prichazeji v uvahu SOAP a REST, ktere mne svymi
>> implementacemi nenadchli. Muzete se s emnou podelit o vase zkusenoasti
>> s REST a SOAP v pythonu? Tyto technologie by se jako nove a komplexni
>> hodily daleko vice.
>>
>> O co se vlstne bude jednat ve vysledku, tato sluzba by mela ovladat
>> linuxovou distribuci ve smyslu spousteni nejakych skriptu a navraceni
>> hodnot/vysledku operaci.
>>
>> Dekuji za nazory.
>> --
>>
>> Tom
>> ___
>> Python mailing list
>> Python@py.cz
>> http://www.py.cz/mailman/listinfo/python
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python

-- 


Tom
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] python + XMLRPC/SOAP/REST

2010-01-16 Tema obsahu Tomas Pelka
On 16 led, 11:48, "azurIt"  wrote:
> Ahoj,
>
> my pre nase API pouzivame SOAP, konkretne ZSI 
> (http://pywebsvcs.sourceforge.net/). Musim s tebou ale suhlasit, ze 
> implementacia ako taka je dost zvlastna, navyse verzie 2.0 a 2.1 boli pre nas 
> nepouzitelne takze sme zostali pri 1.7 + nejake custom upravy. Ale problemy 
> mame mozno tym, ze si to vsetko trochu ulahcujem a vsade pouzivam typ Any :) 
> v kazdom pripade, nevidim dovod pouzivat komplexne typy, kedze vzdy prenasam 
> len standardne boolean/integer/string/array.
>
> azur
>


No ja prave jeste presne nevim jestli si vystacim s boolean/integer/
string/array, pak by me zrejme postacil xml-rpc, k cemu bych se klonil
radeji. Vzhledem k ucelu by to ale mohlo stacit.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] python + XMLRPC/SOAP/REST

2010-01-16 Tema obsahu Tomas Pelka
Zdravim konferenci, chtel bych se vas vsech zeptat na nazor na
nasledujici problematiku.

Vyvstal prede mnou problem tvorby webove sluzby, respektive potrebuji
zajistit RPC. Proto predpokladam tvorbu serverove a klientske casti
otazkou ale zustava jakou technologii zvolit.

Zatim se jako nejlepe v pythonu implementovana jevi klasicka XML-RPC,
tato technologie ma vsak sva omezeni, ze kterych mam obavy.

Jako dalsi prichazeji v uvahu SOAP a REST, ktere mne svymi
implementacemi nenadchli. Muzete se s emnou podelit o vase zkusenoasti
s REST a SOAP v pythonu? Tyto technologie by se jako nove a komplexni
hodily daleko vice.

O co se vlstne bude jednat ve vysledku, tato sluzba by mela ovladat
linuxovou distribuci ve smyslu spousteni nejakych skriptu a navraceni
hodnot/vysledku operaci.

Dekuji za nazory.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] python + XMLRPC/SOAP/REST

2010-01-16 Tema obsahu Tomas Pelka
Zdravim konferenci, chtel bych se vas vsech zeptat na nazor na
nasledujici problematiku.

Vyvstal prede mnou problem tvorby webove sluzby, respektive potrebuji
zajistit RPC. Proto predpokladam tvorbu serverove a klientske casti
otazkou ale zustava jakou technologii zvolit.

Zatim se jako nejlepe v pythonu implementovana jevi klasicka XML-RPC,
tato technologie ma vsak sva omezeni, ze kterych mam obavy.

Jako dalsi prichazeji v uvahu SOAP a REST, ktere mne svymi
implementacemi nenadchli. Muzete se s emnou podelit o vase zkusenoasti
s REST a SOAP v pythonu? Tyto technologie by se jako nove a komplexni
hodily daleko vice.

O co se vlstne bude jednat ve vysledku, tato sluzba by mela ovladat
linuxovou distribuci ve smyslu spousteni nejakych skriptu a navraceni
hodnot/vysledku operaci.

Dekuji za nazory.
-- 

Tom
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] pause python thread

2008-08-07 Tema obsahu Tomas Pelka


Jirka Vejrazka napsal(a):
> 1) Nebylo by v danem pripade pouzitelne threading.Timer()?  Ptam se,
> protoze neznam konkretni kontext

No nevim jestli Timer je to prave orechove. Ja proste potrbuji aby
bezelo vlakno a jednou za 10 min neco udelalo. Nejprve jsem si rikal ze
to pujde nastartovat, stopnout, cekat  a pak zase nastartovat, ale asi
to neni moc koser vzhledem k reziji startovani/zastavovani.

Timer podel toho jak jsem se na nej zbezne dival, umi pouze zpozdit
start, ale treba se platu a tak me opravte.

> 
> 2) time.sleep na mem pocitaci procesor nezatezuje, zkusil jsem tohle
> (pozor, nema to osetrene ukonceni a je potreba to "zabit")
> 
> import threading
> from time import sleep
> 
> def loop(letter):
> while True:
> print letter,
> sleep(2)
> 
> t1 = threading.Thread(target=loop, args='1')
> t2 = threading.Thread(target=loop, args='2')
> 
> t1.start()
> sleep(1)
> t2.start()
> 
> 
> Jirka
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python

-- 

Tom
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Init script a xmlrpc

2008-08-06 Tema obsahu Tomas Pelka
Pekny priklad je treba tady   http://code.activestate.com/recipes/278731/

Věroš Kaplan wrote:
> Mrknuli se, jaký je správný postup pro psaní démona na UNIXu.
> (třeba tohle se mi líbí http://www.enderunix.org/docs/eng/daemon.php )
> 
> Co se pamatuju, tak stačilo fork()nout potomka a rodič mohl exit()nout.
> Potomek potom někam poznamenal svoje PID, aby bylo možné ho posláním
> signálu INTR zabít a nemuselo se složitě hledat jeho PID.
> Je vhodné ještě přesměrovat stdin, stdout a stderr na vhodné místo (do
> logu nebo /dev/null) aby výstup z potomka nizavl
> 
> Initscript s parametrem "start" potom pouze zavolá vlastní skript (s
> parametrem "teď se chovej jako démon") a ten už si vše zařídí ve své
> režii. Pokud dostane initskript parametr "stop", zavolá Jejich skript
> s parametrem "teď zkus najít PID svého bratra a zabij ho" .
> 
> --VK
> PS: Bez záruky, ale v dobré víře :-)
> 
> 2008/8/5 Miloš Kozák <[EMAIL PROTECTED]>:
>> Zdravím,
>> mám napsaný takový základní jednoduchý xmlrpc server, který dělá vše co má.
>> Chtěl bych však tento kód upravit tak, aby jej bylo možné spouštět, jako
>> init script v linuxu, primárně mi jde o distribuci debian.
>>
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python

-- 

Tom

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] pause python thread

2008-08-06 Tema obsahu Tomas Pelka
Jiste s tim souhlasim, nabizi vice moznosti, ale jak jsem psal uplne me 
  postacilo spoustet vlakna ala:

def someFunc():
while 1:
blah blah


thread.start_new_thread(someFunc,())

Vypada to ale tak ze to jednou stejne prepisi do threading.

Jirka Vejrazka wrote:
> Ja uz jenom doplnim - ve vetsine pripadu je pouziti modulu threading
> lepsi nez pouziti thread, zatim jsem se nesetkal s pripadem kdy by to
> bylo obracene. Ale mozna ze tohle je jeden z nich.
> 
>   Jirka
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python

-- 

Tom

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] pause python thread

2008-08-06 Tema obsahu Tomas Pelka
Hmm tak to bude neco shnileho v mem programu, kdyz to nedela sleep.
No jeste trochu popisi co potrebuji udelat. Jedna se o operaci, je ted 
jendo jakou, ktera se opakuje kazdych 10 min. No ja tedy tuto operaci 
provedu a pak v zavislosti na na tom jak dlouho trva dopocitam zbytek do 
10min. Tohle bezi ve smycce, v jednom vlaknu.
Myslim tedy ze se jedna o prvni priklad, jak pisete a tudiz se asi 
sleepu nevyhnu (pokud nekoho napada jak by se to dalo zariti jinak sem s 
tim ;))
Na druhy pripad to nemam podle meho nazoru jak napasovat, nemam se podle 
ceho synchronizovat.
Je ale mozne se uvazuji spatne.

superman wrote:
> Ještě bych chtěl upřesnit, že uspání pomocí sleep nezatíží procesor 
> vůbec. Po dobu uspání thread nedostává procesorový čas, a tudíž nikterak 
> procesor nezatěžuje. Pokud je skutečně Vaším cílem počkat 10 minut, pak 
> sleep je to nejlepší možné řešení, které můžete použít. Pokud je Vaším 
> cílem počkat na nějakou operaci, která nastane asi za 10 minut, tak je 
> sleep diletantismus, protože je lépe synchronizovat čekání na další 
> operaci nějakým vhodnějším synchronizačním objektem (třeba mutexem, nebo 
> semaforem).
> 
> Miloslav Ponkrác
> 
> 
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python


-- 

Tom

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] pause python thread

2008-08-05 Tema obsahu Tomas Pelka
Zdravim diskuzi,

nejakou dobu laboruji s thready v pythonu. V socasne dobe se snazim
prijit na to jak pozastavit vlakno vytvorene pomoci thread.

Vim ze pokud bych vlakna tvoril pomoci threading tak tato moznost
existuje ale v dobe kdy jsem zacal psat aplikaci tak mi thread prisel
jednodussi a proto jsem jej zvolil namisto threading.

Jeste bych mel asi objasnit nac pozastaveni vlakna potrebuji. Mam vlakno
ktere vykona nejakou operaci a pak ceka napr. 10min. Resit takovouto
situaci pomoci sleep() je hloupust, procesor totiz zustane zatizen na 100=
%.

Deuji za rady.

--=20

Tom


* Tomas Pelka[EMAIL PROTECTED]
*
* Key fingerprint:
* 06C0 23C6 9EB7 0761 9807  65F4 7F6F 7EAB 496B 28AA
* www.gpg.cz





signature.asc
Description: OpenPGP digital signature
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

[python] sqlite3 a dotazy z promenne

2008-06-25 Tema obsahu Tomas Pelka
Zdravim konferenci,

narazil sem na problem vkladani databazovych dotazu z promenne, resp.
parametru. Popisi situaci, mam tridu dejme tomu data:


import sqlite3

class Data:
def __init__(self,query):
self.query = query
self.conn = sqlite3.connect('db.db')
self.c = self.conn.cursor()
self.c.execute('%s' % self.query);

def getRow(self):
return self.c.fetchone()
*


Chtel bych ji jako parametr zadavat cely databazovy dotaz (Pokud je to
spatne cesta poradte jak na to prosim.).

Pouziji-li teoreticky nebezpecnou metodu s retezcem (%s) dostavam tohle:

>>> import data
>>> d = data.Data("SELECT * FROM main_t;")
Traceback (most recent call last):
  File "", line 1, in 
  File "data.py", line 10, in __init__
self.c.execute('%s' % self.query);
sqlite3.OperationalError: near "SELECT": syntax error



Pouziji-li dle dokumentace bezpecnou metodu (self.c.execute('?',
(self.query));) dostavam tohle:

>>> import data
>>> d = data.Data("SELECT * FROM main_t;")
Traceback (most recent call last):
  File "", line 1, in 
  File "data.py", line 10, in __init__
self.c.execute('?', (self.query));
sqlite3.OperationalError: near "?": syntax error


Dekuji za rady, hezky den vsem.

-- 

S pozdravem Tomáš Pelka
e-mail: [EMAIL PROTECTED]

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python