[libvirt] [PATCH v2 3/4] Add a 'send-process-signal' command to virsh

Eric Blake eblake at redhat.com
Thu Nov 29 14:45:00 UTC 2012


> * tools/virsh.c: Add send-process-signal
> * tools/virsh.pod: Document new command
> 
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>  tools/virsh-domain.c | 103
>  +++++++++++++++++++++++++++++++++++++++++++++++++++
>  tools/virsh.pod      |  27 ++++++++++++++
>  2 files changed, 130 insertions(+)

> +VIR_ENUM_DECL(virDomainProcessSignal)
> +VIR_ENUM_IMPL(virDomainProcessSignal,
> +              VIR_DOMAIN_PROCESS_SIGNAL_LAST,
> +              "nop", "hup", "int", "quit", "ill", /* 0-4 */
> +              "trap", "abrt", "bus", "fpe", "kill", /* 5-9 */
> +              "usr1", "segv", "usr2", "pipe", "alrm", /* 10-14 */
> +              "term", "stkflt", "chld", "cont", "stop", /* 15-19 */
> +              "tstp", "ttin", "ttou", "urg", "xcpu", /* 20-24 */
> +              "xfsz", "vtalrm", "prof", "winch", "poll", /* 25-29 */
> +              "pwr", "sys", "rt0","rt1", "rt2",  /* 30-34 */

This doesn't include rtmin...

> +
> +    if (STRPREFIX(signame, "sig"))
> +        signame += 3;
> +    else if (STRPREFIX(signame, "sig_"))
> +        signame += 4;

The else will never be reached.  Swap these two conditions.

> +
> +    if ((signum = virDomainProcessSignalTypeFromString(signame)) >=
> 0)
> +        goto cleanup;
> +

...and you lost your handling of rtmin+1 here...


> +++ b/tools/virsh.pod
> @@ -1393,6 +1393,33 @@ B<Examples>
>    # send a tab, held for 1 second
>    virsh send-key --holdtime 1000 0xf
>  
> +=item B<send-process-signal> I<domain-id> [I<--host-pid>] I<pid>
> I<signame>

--host-pid is unsupported; drop it from the synopsis.


> +The I<signame> argument may be either an integer signal constant
> number,
> +or one of the symbolic names:

Maybe mention case-insensitive.

> +
> +    "nop", "hup", "int", "quit", "ill",
> +    "trap", "abrt", "bus", "fpe", "kill",
> +    "usr1", "segv", "usr2", "pipe", "alrm",
> +    "term", "stkflt", "chld", "cont", "stop",
> +    "tstp", "ttin", "ttou", "urg", "xcpu",
> +    "xfsz", "vtalrm", "prof", "winch", "poll",
> +    "pwr", "sys", "rtmin"

This list doesn't mention rt0 and friends.

> +
> +The symbol name may optionally be prefixed with 'sig'. The 'rtmin'
> signal
> +also allows an optional suffix "+<number>" to refer to other real
> time
> +signals.

...so this part of the docs no longer matches the code...

> +
> +B<Examples>
> +  virsh send-process-signal myguest 1 15
> +  virsh send-process-signal myguest 1 term
> +  virsh send-process-signal myguest 1 sigterm
> +  virsh send-process-signal myguest 1 rtmin+12

...and this last example  needs fixing.

But I'm okay giving ACK; I trust you to clean things
up appropriately, and this patch only touches virsh.




More information about the libvir-list mailing list