[distcc] distcc with xinetd... how?

Brian Hall brianwhall at pcisys.net
Wed Aug 7 20:44:02 GMT 2002


What is the magic incantation to get distcc to be spawned correctly from
xinetd? No matter what username I specify in the stanza, distcc always
tries to create subdirs in /root/tmp for its temp files. How do I get
around this? (see sample at the very bottom)

I have gotten distcc 0.7 to work fine by starting the processes via su
on my dual server:

su -l auser -c "/usr/local/bin/distccd --daemon --port 4200"
su -l auser -c "/usr/local/bin/distccd --daemon --port 4201"


and that works fine. Here's my /etc/xinetd.d/distccd attempt, which
spawns distccd but distccd doesn't process correctly:

# distcc compiler daemon
service distccd4200
{
  disable       = no
  id            = distccd4200
  socket_type   = stream
  protocol      = tcp
  wait          = no
  user          = auser
  server        = /usr/local/bin/distccd
  server_args   = --inetd --port 4200
}
service distccd4201
{
  disable       = no
  id            = distccd4201
  socket_type   = stream
  protocol      = tcp
  wait          = no
  user          = auser
  server        = /usr/local/bin/distccd
  server_args   = --inetd --port 4201
}


and of course the corresponding /etc/services entries:

distccd4200     4200/tcp                        # distributed compiler
distccd4201     4201/tcp                        # distributed compiler


====================================================
=	example of the problem output logfile
====================================================
Aug  7 21:30:33 server distccd[11493]: (main) stdin is socket; assuming
--inetd mode
Aug  7 21:30:33 server distccd[11493]: (dcc_inetd_server) inetd server
started (version 0.7, built Aug  7 2002 11:21:39)
Aug  7 21:30:33 server distccd[11493]: (dcc_log_clientname) connection
from syrinx (192.168.x.x)
Aug  7 21:30:34 server distccd[11493]: (dcc_accept_job) got arguments:
gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -I
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/include
-DKBUILD_BASENAME=ll_rw_blk -DEXPORT_SYMTAB -c ll_rw_blk.c -o
ll_rw_blk.o
Aug  7 21:30:34 server distccd[11493]: compile from ll_rw_blk.c to
ll_rw_blk.o
Aug  7 21:30:34 server distccd[11493]: input file ll_rw_blk.c, output
file ll_rw_blk.o
Aug  7 21:30:34 server distccd[11493]: ERROR: (dcc_setup_tempdir) mkdir
/root/tmp/distcc_000001f5 failed: Permission denied
Aug  7 21:30:34 server distccd[11493]: Warning: (dcc_accept_job) failed
to make fifo /root/tmp/distcc_000001f5/server_0011493.i: Permission
denied
Aug  7 21:30:34 server distccd[11493]: (dcc_accept_job) continuing
without fifo
Aug  7 21:30:34 server distccd[11493]: ERROR: (dcc_r_file) failed to
create /root/tmp/distcc_000001f5/server_0011493.i: Permission denied
Aug  7 21:30:34 server distccd[11493]: (dcc_exit) exit: code -1; self:
0.010000 user 0.000000 sys; children: 0.000000 user 0.000000 sys
Aug  7 21:30:34 server distccd[11493]: (dcc_cleanup_tempfiles) cleanup
/root/tmp/distcc_000001f5/server_0011493.i failed: Permission denied
Aug  7 21:30:34 server distccd[11493]: (dcc_cleanup_tempfiles) cleanup
/root/tmp/distcc_000001f5/server_0011493.out failed: Permission denied
Aug  7 21:30:34 server distccd[11493]: (dcc_cleanup_tempfiles) cleanup
/root/tmp/distcc_000001f5/cc_0011493.err failed: Permission denied
Aug  7 21:30:34 server distccd[11493]: (dcc_cleanup_tempfiles) cleanup
/root/tmp/distcc_000001f5/cc_0011493.out failed: Permission denied



-- 
http://www.bigfoot.com/~brihall
Linux Consultant

Honeymoon: time between "I do" and "you'd better".



More information about the distcc mailing list