setpgid() fails for init child

From: Eric Buddington (snikt@resounding.com)
Date: Fri Jun 30 2000 - 15:01:11 EDT

  • Next message: kiran keshava: "Arp Timeout Problem, help needed."

    I'm trying to get init to start processes using sucap, and getting the
    error "Failed to set process group: Operation not permitted", indicating
    that the call 'setpgid(0, getpid())' failed.

    The command in question is:

    sucap syslogd syslogd cap_net_bind_service=eip syslogd -n -f /etc/syslogd.conf

    When the exact command is run from a root shell, the error does not
    occur (syslogd runs).

    When the command is changed to "strace sucap...", the error does not occur.

    When the command is wrapped in 'bash -c "sucap..."', it fails, unless the
    output is redirected, in which case it works.

    The salient difference I see is that it fails exactly when
    (getpgid() != getppid() before the call to setpgid(). I don't
    understand all the tests in sys.c, unfortunately, though by process
    of elimination it must be the 'if (p->leader)' test at kernel.sys:798.

    Is there some reason for this behaviour, or is it a bug?

    I am happy to test theories or get educated...

    -Eric

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Fri Jun 30 2000 - 15:06:16 EDT