On Mon, Mar 17, 2014 at 06:09:04PM -0700, Xin Li wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On 03/17/14 02:26, Pawel Jakub Dawidek wrote: > > On Thu, Mar 13, 2014 at 02:08:36PM -0700, Xin Li wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 > >> > >> Hi, Pawel, > >> > >> I have noticed that casperd's child (zygote) would still use > >> controlling session from parent. This can be observed by running > >> ps - -ax on systems running casperd, where the child have a > >> spurious console associated. > >> > >> The attached patch would fix it. May I commit it against -HEAD? > > > > Hmm, daemon(3) does call setsid(2) already... Are you sure casperd > > wasn't running with -F? > > Oh, sure daemon(3) indeed does setsid(2) but casperd calls it after > zygote_init() so it has no effect to the zygote process, [...]
Sorry for dropping the ball. I see the problem now, thanks.
> [...] maybe something like this instead?
I like the first patch better.
> Index: sbin/casperd/casperd.c
> ===================================================================
> - --- sbin/casperd/casperd.c (revision 263272)
> +++ sbin/casperd/casperd.c (working copy)
> @@ -671,9 +671,6 @@ main(int argc, char *argv[])
> pjdlog_prefix_set("(casperd) ");
> pjdlog_debug_set(debug);
>
> - - if (zygote_init() < 0)
> - - pjdlog_exit(1, "Unable to create zygote process");
> - -
> pfh = pidfile_open(pidfile, 0600, &otherpid);
> if (pfh == NULL) {
> if (errno == EEXIST) {
> @@ -699,6 +696,9 @@ main(int argc, char *argv[])
> pjdlog_debug(1, "PID stored in %s.", pidfile);
> }
>
> + if (zygote_init() < 0)
> + pjdlog_exit(1, "Unable to create zygote process");
> +
> /*
> * Register core services.
> */
--
Pawel Jakub Dawidek http://www.wheelsystems.com
FreeBSD committer http://www.FreeBSD.org
Am I Evil? Yes, I Am! http://mobter.com
pgpM6BygACRwD.pgp
Description: PGP signature
