Normally the user starts one process, which uses the information in the procgroup file to start other processes. For each remote cluster, the process uses the Unix remote shell command rsh to start one of the processes, called the ``cluster master'' on the specified machine. Then each cluster master creates the processes it will share memory with via the Unix fork call. Processes can also be created explicitly by p4_create, which forks one process that will share memory with its parent.
An alternative to the remote shell mechanism is provided for faster startup, particularly on workstation networks. In many environments a ``server'' process can be started on the remote machines ahead of time. When p4 wants to start a process on a remote machine, it first attempts to contact the server. If the server is present, then it forks the remote process, which happens quickly; if the server is not running, then the usual remote shell mechanism is used. A system like this must be constructed quite carefully if it is not to compromise the security of the network. The server distributed with p4 takes all of the precautions of rsh and then some. It requires preregistration of the application in a file readable only by the user, and may require a password from the user in the middle of the startup process. The server method is required when remote shell commands are not permitted on the network. Scripts are supplied with p4 to manage a collection of servers.