bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/3] utils: implement settrans --pid-file


From: Samuel Thibault
Subject: Re: [PATCH 3/3] utils: implement settrans --pid-file
Date: Sat, 9 Nov 2013 18:30:29 +0100
User-agent: Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30)

Justus Winter, le Thu 07 Nov 2013 19:12:30 +0100, a écrit :
> This switch makes settrans write the pid file of the active translator
> it starts to a file. This makes the pid easily retrievable for test
> suites.

Ack.

> * utils/settrans.c (options): Add --pid-file.
> (main): Add variable pid_file.
> (parse_opt): Handle --pid-file switch.
> (open_node): Write pid file.
> ---
>  utils/settrans.c |   22 +++++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/utils/settrans.c b/utils/settrans.c
> index a881401..d13e7c4 100644
> --- a/utils/settrans.c
> +++ b/utils/settrans.c
> @@ -1,6 +1,6 @@
>  /* Set a file's translator.
>  
> -   Copyright (C) 1995,96,97,98,2001,02 Free Software Foundation, Inc.
> +   Copyright (C) 1995,96,97,98,2001,02,13 Free Software Foundation, Inc.
>     Written by Miles Bader <miles@gnu.org>
>  
>     This program is free software; you can redistribute it and/or
> @@ -49,6 +49,8 @@ static struct argp_option options[] =
>    {"passive",     'p', 0, 0, "Change NODE's passive translator record 
> (default)" },
>    {"create",      'c', 0, 0, "Create NODE if it doesn't exist" },
>    {"dereference", 'L', 0, 0, "If a translator exists, put the new one on 
> top"},
> +  {"pid-file",    'F', "FILENAME", 0, "When starting an active translator,"
> +     " write its pid to this file"},
>    {"pause",       'P', 0, 0, "When starting an active translator, prompt and"
>       " wait for a newline on stdin before completing the startup handshake"},
>    {"timeout",     't',"SEC",0, "Timeout for translator startup, in seconds"
> @@ -104,6 +106,7 @@ main(int argc, char *argv[])
>    /* Various option flags.  */
>    int passive = 0, active = 0, keep_active = 0, pause = 0, kill_active = 0,
>        orphan = 0;
> +  char *pid_file = NULL;
>    int excl = 0;
>    int timeout = DEFAULT_TIMEOUT * 1000; /* ms */
>    char **chroot_command = 0;
> @@ -136,6 +139,12 @@ main(int argc, char *argv[])
>       case 'g': kill_active = 1; break;
>       case 'x': excl = 1; break;
>       case 'P': pause = 1; break;
> +     case 'F':
> +       pid_file = strdup (arg);
> +       if (pid_file == NULL)
> +         error(3, ENOMEM, "Failed to duplicate argument");
> +       break;
> +
>       case 'o': orphan = 1; break;
>  
>       case 'C':
> @@ -221,6 +230,17 @@ main(int argc, char *argv[])
>             getchar ();
>           }
>  
> +       if (pid_file != NULL)
> +         {
> +           FILE *h;
> +           h = fopen (pid_file, "w");
> +           if (h == NULL)
> +             error (4, errno, "Failed to open pid file");
> +
> +           fprintf (h, "%i\n", task2pid (task));
> +           fclose (h);
> +         }
> +
>         node = file_name_lookup (node_name, flags | lookup_flags, 0666);
>         if (node == MACH_PORT_NULL)
>           {
> -- 
> 1.7.10.4
> 
> 

-- 
Samuel
<b> il faut combien de chevaux pour tirer une doloréan à 88 morph ?
***b vient de remarque que 88 mph c'est 142 km/h
<y> aaaaah
<y> c'est pour ça qu'ils limitent à 130 km/h sur les autoroutes
<y> c'est pour éviter que les gens voyagent dans le temps
<b> probablement



reply via email to

[Prev in Thread] Current Thread [Next in Thread]