Line 5:
Line 5:
== Protobuf messages ==
== Protobuf messages ==
−
criu_req/criu_resp -- wrappers for requests/responses. They are to be used for transferring messages. It is needed to provide compatibility with an older versions of rpc. Field type in them _must_ be set accordingly to type of request/response that is stored. Types of request/response are defined in enum criu_req_type.
+
criu_req/criu_resp -- wrappers for requests/responses. They are to be used for transferring messages and needed to provide compatibility with an older versions of rpc. Field type in them _must_ be set accordingly to type of request/response that is stored. Types of request/response are defined in enum criu_req_type.
−
−
=== criu_req_type ===
−
There is only 1 request/response type for now.
−
<pre>enum criu_req_type {
−
EMPTY = 0;
−
DUMP = 1;
−
}
−
</pre>
−
=== criu_req ===
=== criu_req ===
Line 22:
Line 13:
optional criu_dump_req dump = 2;
optional criu_dump_req dump = 2;
+
}
+
</pre>
+
+
==== criu_req_type ====
+
There is only 1 request/response type for now.
+
<pre>enum criu_req_type {
+
EMPTY = 0;
+
DUMP = 1;
}
}
</pre>
</pre>
==== criu_dump_req ====
==== criu_dump_req ====
−
criu_dump_req is used to store dump options.
+
It is used to store dump options.
<pre>message criu_dump_req {
<pre>message criu_dump_req {
required int32 images_dir_fd = 1;
required int32 images_dir_fd = 1;
Line 67:
Line 66:
Field "restored" is set to "true" if process was restored.
Field "restored" is set to "true" if process was restored.
−
== Server ==
+
== Run ==
+
=== Server ===
On a server side, CRIU creates SOCK_SEQPACKET Unix socket and listens for connections on it. After receiving criu_req, CRIU processes it, do what is requested and sends response back.
On a server side, CRIU creates SOCK_SEQPACKET Unix socket and listens for connections on it. After receiving criu_req, CRIU processes it, do what is requested and sends response back.
Line 78:
Line 78:
For the full list of options, please run "criu -h".
For the full list of options, please run "criu -h".
−
== Client ==
+
=== Client ===
Client, in its turn, must connect to service socket, send criu_msg with request in it, and wait for a criu_resp with response.
Client, in its turn, must connect to service socket, send criu_msg with request in it, and wait for a criu_resp with response.
You can find examples of client programs in C and Python in test/rpc/.
You can find examples of client programs in C and Python in test/rpc/.