On 04/28/2011 10:25 AM, Ivana Hutarova Varekova wrote:
> This patch adds option -h to cgexec tool
>
> Signed-off-by: Ivana Hutarova Varekova <[email protected]>
Acked-By: Jan Safranek <[email protected]>
+ merged and pushed, thanks!
> ---
>
> src/tools/cgexec.c | 35 ++++++++++++++++++++++-------------
> 1 files changed, 22 insertions(+), 13 deletions(-)
>
> diff --git a/doc/man/cgexec.1 b/doc/man/cgexec.1
> index bf197bd..e9d38d2 100644
> --- a/doc/man/cgexec.1
> +++ b/doc/man/cgexec.1
> @@ -7,7 +7,7 @@
> cgexec \- run the task in given control groups
>
> .SH SYNOPSIS
> -\fBcgexec\fR [\fB-g\fR <\fIcontrollers>:<path\fR>] [--sticky] \fBcommand\fR
> [\fIarguments\fR]
> +\fBcgexec\fR [\fB-h\fR] [\fB-g\fR <\fIcontrollers>:<path\fR>] [--sticky]
> \fBcommand\fR [\fIarguments\fR]
>
> .SH DESCRIPTION
> The \fBcgexec\fR
> @@ -32,6 +32,10 @@ If this option is not used then
> cgroup based on \fB/etc/cgrules.conf\fR.
>
> .TP
> +.B -h, --help
> +Display this help and exit.
> +
> +.TP
> .B --sticky
> If running the task \fBcommand\fR with this option, the daemon of
> service cgred (cgrulesengd process) does not change both the task
> diff --git a/src/tools/cgexec.c b/src/tools/cgexec.c
> index 8e0b4d8..f03f1fa 100644
> --- a/src/tools/cgexec.c
> +++ b/src/tools/cgexec.c
> @@ -35,10 +35,25 @@
> #include "tools-common.h"
>
> static struct option longopts[] = {
> - {"sticky", no_argument, NULL, 's'},
> + {"sticky", no_argument, NULL, 's'},
> + {"help", no_argument, NULL, 'h'},
> {0, 0, 0, 0}
> };
>
> +static void usage(int status, const char *program_name)
> +{
> + if (status != 0)
> + fprintf(stderr, "Wrong input parameters,"
> + " try %s --help' for more information.\n",
> + program_name);
> + else {
> + printf("Usage: %s [-h] [-g <controllers>:<path>] "
> + "[--sticky] command [arguments] ...\n",
> + program_name);
> + }
> +}
> +
> +
> int main(int argc, char *argv[])
> {
> int ret = 0, i;
> @@ -50,17 +65,9 @@ int main(int argc, char *argv[])
> int c;
> struct cgroup_group_spec *cgroup_list[CG_HIER_MAX];
>
> - if (argc < 2) {
> - fprintf(stderr, "Usage is %s"
> - " [-g <list of controllers>:<relative path to cgroup>]"
> - " [--sticky] command [arguments] \n",
> - argv[0]);
> - exit(2);
> - }
> -
> memset(cgroup_list, 0, sizeof(cgroup_list));
>
> - while ((c = getopt_long(argc, argv, "+g:s", longopts, NULL)) > 0) {
> + while ((c = getopt_long(argc, argv, "+g:sh", longopts, NULL)) > 0) {
> switch (c) {
> case 'g':
> ret = parse_cgroup_spec(cgroup_list, optarg,
> @@ -75,16 +82,18 @@ int main(int argc, char *argv[])
> case 's':
> flag_child |= CGROUP_DAEMON_UNCHANGE_CHILDREN;
> break;
> + case 'h':
> + usage(0, argv[0]);
> + exit(0);
> default:
> - fprintf(stderr, "Invalid command line option\n");
> + usage(1, argv[0]);
> exit(1);
> - break;
> }
> }
>
> /* Executable name */
> if (!argv[optind]) {
> - fprintf(stderr, "No command specified\n");
> + usage(1, argv[0]);
> exit(1);
> }
>
>
>
> ------------------------------------------------------------------------------
> WhatsUp Gold - Download Free Network Management Software
> The most intuitive, comprehensive, and cost-effective network
> management toolset available today. Delivers lowest initial
> acquisition cost and overall TCO of any competing solution.
> http://p.sf.net/sfu/whatsupgold-sd
> _______________________________________________
> Libcg-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libcg-devel
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel