����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
lib
/
python2.7
/
site-packages
/
pycriu
/
Filename :
criu.pyo
back
Copy
� k�x]c�����������@���s����d��d�l��Z��d��d�l�Z�d��d�l�Z�d��d�l�Z�d��d�l�Z�d��d�l�j�Z�d�d�d�������YZ�d�e�f�d�������YZ �d�e�f�d�������YZ �d�e�f�d �������YZ�d �e�f�d�������YZ �d�e �f�d �������YZ�d�e �f�d�������YZ�d�d�d�������YZ�d�S(���i����Nt ���_criu_commc�����������B���sD���e��Z�d��Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z �d����Z �d����Z�RS(���s/��� Base class for communication classes. i����i���i���c���������C���s���d�S(���s���� Connect to criu and return socket object. daemon -- is for whether or not criu should daemonize if executing criu from binary(comm_bin). N(����(���t���selft���daemon(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���connect���s����c���������C���s���d�S(���s'��� Disconnect from criu. N(����(���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt ���disconnect���s����N(���t���__name__t ���__module__t���__doc__t���COMM_SKt���COMM_FDt���COMM_BINt���Nonet ���comm_typet���commt���skR���R���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR�������s��� t ���_criu_comm_skc�����������B���s)���e��Z�d��Z�d����Z�d����Z�d����Z�RS(���s.��� Communication class for unix socket. c���������C���s���|��j��|��_�|�|��_�d��S(���N(���R���R���R ���(���R���t���sk_path(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���__init__*���s����c���������C���s5���t��j��t��j�t��j���|��_�|��j�j�|��j���|��j�S(���N(���t���sockett���AF_UNIXt���SOCK_SEQPACKETR���R���R ���(���R���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���.���s����c���������C���s���|��j��j����d��S(���N(���R���t���close(���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���4���s����(���R���R���R���R���R���R���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���%���s��� t ���_criu_comm_fdc�����������B���s)���e��Z�d��Z�d����Z�d����Z�d����Z�RS(���s2��� Communication class for file descriptor. c���������C���s���|��j��|��_�|�|��_�d��S(���N(���R ���R���R ���(���R���t���fd(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���=���s����c���������C���s(���t��j�|��j�t��j�t��j���|��_�|��j�S(���N(���R���t���fromfdR ���R���R���R���(���R���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���A���s����c���������C���s���|��j��j����d��S(���N(���R���R���(���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���G���s����(���R���R���R���R���R���R���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���8���s��� t���_criu_comm_binc�����������B���s)���e��Z�d��Z�d����Z�d����Z�d����Z�RS(���s)��� Communication class for binary. c���������C���s+���|��j��|��_�|�|��_�d��|��_�d��|��_�d��S(���N(���R ���R���R ���R���t���swrkR���(���R���t���bin_path(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���P���s���� c������������sm��t��j�t��j�t��j������t�j����d�t�j���}�t�j����d�t�j�|�t�j�B��t�j����d�t�j���}�t�j����d�t�j�|�t�j�@��|���_�t �j ����}�|�d�k�r�����f�d����}�|�rt �j ����}�|�d�k�r��t �j����|����q t �j�d���q%|����n�|�r%t �j �|�d���n�����d�j����t�j�d����d�j�d�����d���_����d���_���j�S(���Ni���i����c��������������s����t��j�d���t��j�d���t��j�d������d�j�t�j�d�t��j��������t��j���j���j�d�d����d�j����g���t��j �d���d��S(���Ni����i���i���t���iR���s���%d( ���t���osR���t���sendt���structt���packt���getpidt���execvR ���t���filenot���_exit(����(���t���cssR���(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt ���exec_criud���s���� # R���i���(���R���t ���socketpairR���R���t���fcntlt���F_GETFDt���F_SETFDt ���FD_CLOEXECR���R���t���forkt���setsidR$���t���waitpidR���R���t���unpackt���recvR���R���(���R���R���t���flagst���pR&���(����(���R%���R���s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���V���s,����!" & c���������C���s0���|��j��j����|��j�s,�t�j�|��j�d���n��d��S(���Ni����(���R���R���R���R���R.���R���(���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR�������s���� (���R���R���R���R���R���R���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR���K���s��� 0t ���CRIUExceptionc�����������B���s#���e��Z�d��Z�d�Z�d�Z�d����Z�RS(���s?��� Exception class for handling and storing criu errors. c���������C���s���|��j��S(���N(���t���_str(���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���__str__����s����N(���R���R���R���R���t���typR4���R5���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR3�������s���t���CRIUExceptionInternalc�����������B���s���e��Z�d��Z�d����Z�RS(���sC��� Exception class for handling and storing internal errors. c���������C���s/���|�|��_��d�t�j�j�|��j����|�f�|��_�d��S(���Ns!���%s failed with internal error: %s(���R6���t���rpct ���criu_req_typet���NameR4���(���R���R6���t���s(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR�������s���� (���R���R���R���R���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR7�������s���t���CRIUExceptionExternalc�����������B���s ���e��Z�d��Z�d����Z�d����Z�RS(���sC��� Exception class for handling and storing criu RPC errors. c���������C���s.���|�|��_��|�|��_�|�|��_�|��j����|��_�d��S(���N(���R6���t���resp_typt���errnot���_gen_error_strR4���(���R���t���req_typR=���R>���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR�������s���� c���������C���s����d�t��j�j�|��j���f�}�|��j�|��j�k�rE�|�d�|��j�f�7}�n��|�d�|��j�f�7}�|��j�t�j�k�rx�|�d�7}�n��|��j�t��j�k�r��|��j�t�j�k�r��|�d�7}�q��n��|��j�t��j �k�r��|��j�t�j �k�r��|�d�7}�q��n��|�d�7}�|�S(���Ns���%s failed: s���Unexpected response type %d: s���Error(%d): s���Bad optionss���No process with such pids)���Process with requested pid already existst���Unknown(���R8���R9���R:���R6���R=���R>���t���EBADRQCt���DUMPt���ESRCHt���RESTOREt���EEXIST(���R���R;���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR?�������s���� (���R���R���R���R���R?���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR<�������s��� t���criuc�����������B���s}���e��Z�d��Z�d�Z�d�Z�d����Z�d����Z�d����Z�d����Z �d����Z �d����Z�d����Z�d����Z �d ����Z�d ����Z�d����Z�RS( ���s ��� Call criu through RPC. c���������C���s)���|��j��d���t�j����|��_�d��|��_�d��S(���NRG���(���t ���use_binaryR8���t ���criu_optst���optsR���R���(���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyR�������s���� c���������C���s���t��|���|��_�d�S(���sZ��� Access criu using unix socket which that belongs to criu service daemon. N(���R���t���_comm(���R���t���sk_name(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���use_sk����s����c���������C���s���t��|���|��_�d�S(���s0��� Access criu using provided fd. N(���R���RK���(���R���R���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���use_fd����s����c���������C���s���t��|���|��_�d�S(���sO��� Access criu by execing it using provided path to criu binary. N(���R���RK���(���R���t���bin_name(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyRH�������s����c���������C���s��t��}�|�j�t�j�k�r4�|�j�j�d���r4�t�}�n��y��|��j�sU�|��j�j �|���}�n �|��j�}�|�j �rs�|�|��_�n��|�j�|�j������|�j �t�|�j �d�t�j�t�j�B������}�|�j �s��|��j�j����n��t�j����}�|�j�|���Wn+�t�k �r}�t�|�j�t�|�������n�X|�S(���sA��� As simple as send request and receive response. t���pidi���(���t���Falset���typeR8���RC���RJ���t���HasFieldt���TrueR���RK���R���t ���keep_openR���t���SerializeToStringR0���t���lenR���t ���MSG_TRUNCt���MSG_PEEKR���t ���criu_respt���ParseFromStringt ���ExceptionR7���t���str(���R���t���reqR���R;���t���buft���respt���e(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���_send_req_and_recv_resp����s$����% + c���������C���sR���t��j����}�t��j�|�_�|��j�|���}�|�j�sN�t�|�j�|�j�|�j�����n��d�S(���sB��� Checks whether the kernel support is up-to-date. N(���R8���t���criu_reqt���CHECKRR���Rb���t���successR<���t���cr_errno(���R���R^���R`���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���check��s ���� c���������C���sh���t��j����}�t��j�|�_�|�j�j�|��j���|��j�|���}�|�j�sa�t�|�j�|�j�|�j �����n��|�j �S(���sC��� Checkpoint a process/tree identified by opts.pid. (���R8���Rc���RC���RR���RJ���t ���MergeFromRb���Re���R<���Rf���t���dump(���R���R^���R`���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyRi�����s���� c���������C���sh���t��j����}�t��j�|�_�|�j�j�|��j���|��j�|���}�|�j�sa�t�|�j�|�j�|�j �����n��|�j �S(���sC��� Checkpoint a process/tree identified by opts.pid. (���R8���Rc���t���PRE_DUMPRR���RJ���Rh���Rb���Re���R<���Rf���Ri���(���R���R^���R`���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���pre_dump"��s���� c���������C���sh���t��j����}�t��j�|�_�|�j�j�|��j���|��j�|���}�|�j�sa�t�|�j�|�j�|�j �����n��|�j �S(���s)��� Restore a process/tree. (���R8���Rc���RE���RR���RJ���Rh���Rb���Re���R<���Rf���t���restore(���R���R^���R`���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyRl���1��s���� c���������C���sq���t��j����}�t��j�|�_�|�j�j�|��j���t�|�_�|��j�|���}�|�j �sj�t �|�j�|�j�|�j�����n��|�j�S(���N( ���R8���Rc���t���PAGE_SERVER_CHLDRR���RJ���Rh���RT���RU���Rb���Re���R<���Rf���t���ps(���R���R^���R`���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���page_server_chld@��s���� c���������C���s^���t��j����}�t��j�|�_�|�|�_�|��j�|���}�|�j�sW�t�|�j�|�j�|�j�����n��|�j �S(���N( ���R8���Rc���t���WAIT_PIDRR���RP���Rb���Re���R<���Rf���t���status(���R���RP���R^���R`���(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���wait_pidM��s���� N(���R���R���R���R���RJ���RK���R���RM���RN���RH���Rb���Rg���Ri���Rk���Rl���Ro���Rr���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyRG�������s��� # (����(����(���R���R>���R(���R���R���t���pycriu.rpc_pb2t���rpc_pb2R8���R����R���R���R���R\���R3���R7���R<���RG���(����(����(����s/���/usr/lib/python2.7/site-packages/pycriu/criu.pyt���<module>���s���A#