[CRIU] [PATCH 2/2] service: use setproctitle()

Pavel Emelyanov xemul at parallels.com
Thu Feb 20 00:59:22 PST 2014


On 02/20/2014 12:55 PM, Ruslan Kuprieiev wrote:
> On 20.02.2014 11:52, Andrew Vagin wrote:
>> On Thu, Feb 20, 2014 at 01:21:58AM +0400, Ruslan Kuprieiev wrote:
>>> Enhance ps output.
>> Could you show this output?
> Sorry for not giving any real examples.
> Start service and let some clients use it. Then:
> root at efiop-VirtualBox:~#  ps xaf | grep criu
> \_ criu service
>      \_ criu dump
>      \_ criu dump
>      \_ criu pre-dump
>      \_ criu check

For dump and pre-dump it would be nice to show pid and images-dir options.
For any command it worth adding an --rpc pseudo-argument.

> Yes, for now, it is not extremely informative=).
> I will appreciate any ideas about what is worth to add to the title.
> 
>>> Signed-off-by: Ruslan Kuprieiev <kupruser at gmail.com>
>>> ---
>>>   cr-service.c | 8 ++++++++
>>>   crtools.c    | 5 +++++
>>>   2 files changed, 13 insertions(+)
>>>
>>> diff --git a/cr-service.c b/cr-service.c
>>> index 9688b76..d08b995 100644
>>> --- a/cr-service.c
>>> +++ b/cr-service.c
>>> @@ -23,6 +23,7 @@
>>>   #include "sd-daemon.h"
>>>   #include "page-xfer.h"
>>>   #include "net.h"
>>> +#include "setproctitle.h"
>>>   
>>>   unsigned int service_sk_ino = -1;
>>>   
>>> @@ -458,14 +459,19 @@ static int cr_service_work(int sk)
>>>   
>>>   	switch (msg->type) {
>>>   	case CRIU_REQ_TYPE__DUMP:
>>> +		setproctitle("dump");
>>>   		return dump_using_req(sk, msg->opts);
>>>   	case CRIU_REQ_TYPE__RESTORE:
>>> +		setproctitle("restore");
>>>   		return restore_using_req(sk, msg->opts);
>>>   	case CRIU_REQ_TYPE__CHECK:
>>> +		setproctitle("check");
>>>   		return check(sk);
>>>   	case CRIU_REQ_TYPE__PRE_DUMP:
>>> +		setproctitle("pre-dump");
>>>   		return pre_dump_loop(sk, msg);
>>>   	case CRIU_REQ_TYPE__PAGE_SERVER:
>>> +		setproctitle("page-server");
>>>   		return start_page_server_req(sk, msg->opts);
>>>   
>>>   	default:
>>> @@ -548,6 +554,8 @@ int cr_service(bool daemon_mode)
>>>   	struct sockaddr_un client_addr;
>>>   	socklen_t client_addr_len;
>>>   
>>> +	setproctitle("service");
>>> +
>>>   	n = sd_listen_fds(0);
>>>   	if (n > 1) {
>>>   		pr_err("Too many file descriptors (%d) recieved", n);
>>> diff --git a/crtools.c b/crtools.c
>>> index b35d752..20478c1 100644
>>> --- a/crtools.c
>>> +++ b/crtools.c
>>> @@ -34,6 +34,7 @@
>>>   #include "file-lock.h"
>>>   #include "cr-service.h"
>>>   #include "plugin.h"
>>> +#include "setproctitle.h"
>>>   
>>>   struct cr_options opts;
>>>   
>>> @@ -129,6 +130,10 @@ int main(int argc, char *argv[])
>>>   	cr_pb_init();
>>>   	restrict_uid(getuid(), getgid());
>>>   
>>> +	argv = setproctitle_init(argc, argv);
>>> +	if (!argv)
>>> +		return 1;
>>> +
>>>   	if (argc < 2)
>>>   		goto usage;
>>>   
>>> -- 
>>> 1.8.3.2
>>>
>>> _______________________________________________
>>> CRIU mailing list
>>> CRIU at openvz.org
>>> https://lists.openvz.org/mailman/listinfo/criu
> 
> .
> 




More information about the CRIU mailing list