Run from inetd
Under a normal installation, the
Perforce
service runs on Linux as a background process that waits for connections
from users. To have p4d start up only when
connections are made to it using inetd and p4d
-i, add the following line to
/etc/inetd.conf:
p4dservice stream tcp nowait username /usr/local/bin/p4d p4d -i -r p4droot
and then add the following line to /etc/services:
p4dservice nnnn /tcp
where:
- p4dservice is the service name you choose for this Helix Core Server
- /usr/local/bin is the directory holding your
p4dbinary - p4droot is the root directory
(
P4DROOT) to use for this Helix Core Server (for example,/usr/local/p4d) - username is the UNIX user name to use for running this Helix Core Server
- nnnn is the port number for this Helix Core Server to use
The "extra" p4d on the /etc/inetd.conf
line must be present; inetd passes this to the OS as
argv[0]. The first argument, then, is the
-i flag, which causes p4d not to run as
a background process, but rather to serve the single client connected to
it on stdin/stdout. (This is the convention used for services started by
inetd.)
This method is an alternative to running p4d from a
startup script. It can also be useful for providing special services. For
example, an organization might have a several test servers running on UNIX, each defined as an
inetd service with its own port number.
There are caveats with this method:
- inetd can disallow excessive connections, so a script
that invokes several thousand
p4commands, each of which spawns ap4dserver viainetd, might causeinetdto temporarily disable the service. Depending on your system, you might need to configureinetdto ignore or raise this limit. - There is no easy way to disable the server because the
p4dexecutable is run each time. Disabling the server requires modifying/etc/inetd.confand restartinginetd. - To use Helix Core Server with this license, you need to request a server license that does not specify a port. Contact https://www.perforce.com/support/request-support.
For information about using systemd to launch services
and daemons at boot time, see the Perforce Knowledge Base article, Example systemd Perforce Service File.






